0s autopkgtest [20:29:38]: starting date and time: 2025-10-29 20:29:38+0000 0s autopkgtest [20:29:38]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [20:29:38]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.ge3awqxc/out --timeout-copy=6000 -a i386 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:libscalar-list-utils-perl --apt-upgrade libjson-schema-modern-perl --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=libscalar-list-utils-perl/1:1.70-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@sto01-2.secgroup --name adt-resolute-i386-libjson-schema-modern-perl-20251029-202938-juju-7f2275-prod-proposed-migration-environment-2-4cd6a932-10ab-41f1-9225-74d787d591ef --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-i386-libjson-schema-modern-perl-20251029-202938-juju-7f2275-prod-proposed-migration-environment-2-4cd6a932-10ab-41f1-9225-74d787d591ef from image adt/ubuntu-resolute-amd64-server-20251029.img (UUID 2345c089-5627-4919-bdd0-dff8360b43c0)... 35s autopkgtest [20:30:13]: testbed dpkg architecture: amd64 35s autopkgtest [20:30:13]: testbed apt version: 3.1.11 36s autopkgtest [20:30:14]: @@@@@@@@@@@@@@@@@@@@ test bed setup 36s autopkgtest [20:30:14]: testbed release detected to be: None 37s autopkgtest [20:30:15]: updating testbed package index (apt update) 37s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 37s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 37s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 37s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 37s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [70.5 kB] 37s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5856 B] 37s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [3669 kB] 38s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [206 kB] 38s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [290 kB] 38s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [188 kB] 38s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [5760 B] 38s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [4212 B] 38s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [28.6 kB] 38s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [336 B] 38s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [2594 kB] 38s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [1142 kB] 39s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [72.3 kB] 39s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [47.3 kB] 39s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [19.9 kB] 39s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [2068 B] 39s Fetched 8434 kB in 2s (4115 kB/s) 40s Reading package lists... 41s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 41s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 41s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 41s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 41s Reading package lists... 41s Reading package lists... 41s Building dependency tree... 41s Reading state information... 42s Calculating upgrade... 42s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 42s autopkgtest [20:30:20]: upgrading testbed (apt dist-upgrade and autopurge) 42s Reading package lists... 42s Building dependency tree... 42s Reading state information... 42s Calculating upgrade... 42s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 42s Reading package lists... 42s Building dependency tree... 42s Reading state information... 43s Solving dependencies... 43s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 45s autopkgtest [20:30:23]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 10:00:33 UTC 2025 45s autopkgtest [20:30:23]: @@@@@@@@@@@@@@@@@@@@ apt-source libjson-schema-modern-perl 46s Get:1 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.611-1 (dsc) [4057 B] 46s Get:2 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.611-1 (tar) [224 kB] 46s Get:3 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.611-1 (diff) [7924 B] 46s gpgv: Signature made Sat May 31 15:20:17 2025 UTC 46s gpgv: using RSA key D1E1316E93A760A8104D85FABB3A68018649AA06 46s gpgv: Can't check signature: No public key 46s dpkg-source: warning: cannot verify inline signature for ./libjson-schema-modern-perl_0.611-1.dsc: no acceptable signature found 46s autopkgtest [20:30:24]: testing package libjson-schema-modern-perl version 0.611-1 47s autopkgtest [20:30:25]: build not needed 47s autopkgtest [20:30:25]: test autodep8-perl-build-deps: preparing testbed 48s Reading package lists... 48s Building dependency tree... 48s Reading state information... 48s Solving dependencies... 48s The following NEW packages will be installed: 48s autoconf autodep8 automake autopoint autotools-dev binutils-i686-linux-gnu 48s build-essential cpp cpp-15 cpp-15-i686-linux-gnu cpp-15-x86-64-linux-gnu 48s cpp-i686-linux-gnu cpp-x86-64-linux-gnu crossbuild-essential-i386 48s dctrl-tools debhelper debugedit dh-autoreconf dh-strip-nondeterminism dwz 48s g++ g++-15 g++-15-i686-linux-gnu g++-15-x86-64-linux-gnu g++-i686-linux-gnu 48s g++-x86-64-linux-gnu gcc gcc-11-base:i386 gcc-15 gcc-15-cross-base 48s gcc-15-i686-linux-gnu gcc-15-i686-linux-gnu-base gcc-15-x86-64-linux-gnu 48s gcc-i686-linux-gnu gcc-x86-64-linux-gnu gettext git git-man intltool-debian 48s javascript-common libalgorithm-c3-perl libarchive-zip-perl libasan6:i386 48s libasan8 libasan8-i386-cross libatomic1:i386 libatomic1-i386-cross 48s libautovivification-perl libb-hooks-endofscope-perl libb-hooks-op-check-perl 48s libbuiltin-compat-perl libc6-dev:i386 libc6-dev-i386-cross libc6-i386-cross 48s libcc1-0 libclass-c3-perl libclass-data-inheritable-perl 48s libclass-inspector-perl libclass-method-modifiers-perl 48s libclass-singleton-perl libclass-tiny-perl libclass-xsaccessor-perl 48s libclone-perl libcpan-meta-check-perl libcpan-requirements-dynamic-perl 48s libcpanel-json-xs-perl libcrypt-dev:i386 libcrypt1:i386 libdata-optlist-perl 48s libdata-validate-domain-perl libdatetime-format-rfc3339-perl 48s libdatetime-locale-perl libdatetime-perl libdatetime-timezone-perl 48s libdebhelper-perl libdevel-callchecker-perl libdevel-cycle-perl 48s libdevel-stacktrace-perl libdynaloader-functions-perl 48s libemail-address-xs-perl liberror-perl libeval-closure-perl 48s libexception-class-perl libexporter-tiny-perl libextutils-config-perl 48s libextutils-hascompiler-perl libextutils-helpers-perl 48s libextutils-installpaths-perl libfeature-compat-try-perl libfile-chdir-perl 48s libfile-copy-recursive-perl libfile-sharedir-perl 48s libfile-stripnondeterminism-perl libgcc-11-dev:i386 libgcc-15-dev 48s libgcc-15-dev-i386-cross libgcc-s1-i386-cross 48s libgetopt-long-descriptive-perl libgit-wrapper-perl libgomp1 libgomp1:i386 48s libgomp1-i386-cross libhwasan0 libimport-into-perl libio-stringy-perl 48s libisl23 libitm1 libitm1:i386 libitm1-i386-cross libjs-bootstrap5 48s libjs-highlight.js libjs-popper.js libjson-perl libjson-schema-modern-perl 48s liblsan0 libmodule-build-tiny-perl libmodule-implementation-perl 48s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 48s libmpc3 libmro-compat-perl libnamespace-autoclean-perl 48s libnamespace-clean-perl libnet-domain-tld-perl libnet-idn-encode-perl 48s libpackage-stash-perl libpadwalker-perl libparams-classify-perl 48s libparams-util-perl libparams-validate-perl 48s libparams-validationcompiler-perl libpath-tiny-perl libquadmath0 48s libquadmath0:i386 libquadmath0-i386-cross libref-util-perl 48s libref-util-xs-perl librole-tiny-perl libsafe-isa-perl libscope-guard-perl 48s libsereal-decoder-perl libsereal-encoder-perl libsereal-perl 48s libsort-versions-perl libspecio-perl libstdc++-11-dev:i386 libstdc++-15-dev 48s libstdc++-15-dev-i386-cross libstdc++6:i386 libstdc++6-i386-cross 48s libstrictures-perl libsub-exporter-perl libsub-exporter-progressive-perl 48s libsub-identify-perl libsub-install-perl libsub-name-perl libsub-quote-perl 48s libsyntax-keyword-try-perl libtest-deep-perl 48s libtest-deep-unorderedpairs-perl libtest-fatal-perl 48s libtest-file-sharedir-perl libtest-json-schema-acceptance-perl 48s libtest-memory-cycle-perl libtest-needs-perl libtest-warnings-perl 48s libtest-without-module-perl libtest2-suite-perl libtime-moment-perl libtool 48s libtry-tiny-perl libtsan2 libtype-tiny-perl libtype-tiny-xs-perl libubsan1 48s libubsan1:i386 libubsan1-i386-cross libvariable-magic-perl 48s libxs-parse-keyword-perl libxstring-perl linux-libc-dev:i386 48s linux-libc-dev-i386-cross m4 node-popper2 pkg-perl-autopkgtest po-debconf 48s 0 upgraded, 188 newly installed, 0 to remove and 0 not upgraded. 48s Need to get 176 MB of archives. 48s After this operation, 656 MB of additional disk space will be used. 48s Get:1 http://ftpmaster.internal/ubuntu resolute/main i386 libcrypt1 i386 1:4.4.38-1build1 [91.8 kB] 48s Get:2 http://ftpmaster.internal/ubuntu resolute/main i386 libatomic1 i386 15.2.0-5ubuntu1 [8412 B] 48s Get:3 http://ftpmaster.internal/ubuntu resolute/main i386 libstdc++6 i386 15.2.0-5ubuntu1 [877 kB] 48s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 m4 amd64 1.4.19-8 [248 kB] 48s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 autoconf all 2.72-3.1ubuntu1 [384 kB] 48s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 dctrl-tools amd64 2.24-3build3 [106 kB] 48s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 autodep8 all 0.30 [13.7 kB] 48s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 autotools-dev all 20240727.1 [43.4 kB] 49s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 automake all 1:1.17-4ubuntu1 [572 kB] 49s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 autopoint all 0.23.1-2build2 [619 kB] 49s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 libisl23 amd64 0.27-1 [685 kB] 49s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 libmpc3 amd64 1.3.1-1build3 [57.0 kB] 49s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15-x86-64-linux-gnu amd64 15.2.0-5ubuntu1 [12.9 MB] 50s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15 amd64 15.2.0-5ubuntu1 [1028 B] 50s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [5746 B] 50s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp amd64 4:15.2.0-4ubuntu1 [22.4 kB] 50s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 libcc1-0 amd64 15.2.0-5ubuntu1 [47.4 kB] 50s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-5ubuntu1 [151 kB] 50s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 libitm1 amd64 15.2.0-5ubuntu1 [29.3 kB] 50s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 libasan8 amd64 15.2.0-5ubuntu1 [3071 kB] 50s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 liblsan0 amd64 15.2.0-5ubuntu1 [1360 kB] 50s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 libtsan2 amd64 15.2.0-5ubuntu1 [2757 kB] 51s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 libubsan1 amd64 15.2.0-5ubuntu1 [1210 kB] 51s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 libhwasan0 amd64 15.2.0-5ubuntu1 [1685 kB] 51s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 libquadmath0 amd64 15.2.0-5ubuntu1 [153 kB] 51s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 libgcc-15-dev amd64 15.2.0-5ubuntu1 [2863 kB] 51s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15-x86-64-linux-gnu amd64 15.2.0-5ubuntu1 [25.4 MB] 51s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15 amd64 15.2.0-5ubuntu1 [523 kB] 51s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [1208 B] 51s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc amd64 4:15.2.0-4ubuntu1 [5024 B] 51s Get:31 http://ftpmaster.internal/ubuntu resolute/main amd64 libstdc++-15-dev amd64 15.2.0-5ubuntu1 [2573 kB] 52s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15-x86-64-linux-gnu amd64 15.2.0-5ubuntu1 [14.4 MB] 52s Get:33 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15 amd64 15.2.0-5ubuntu1 [23.7 kB] 52s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [966 B] 52s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 g++ amd64 4:15.2.0-4ubuntu1 [1100 B] 52s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 build-essential amd64 12.12ubuntu1 [5080 B] 52s Get:37 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15-i686-linux-gnu-base amd64 15.2.0-7ubuntu1cross1 [58.6 kB] 52s Get:38 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15-i686-linux-gnu amd64 15.2.0-7ubuntu1cross1 [13.8 MB] 52s Get:39 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-i686-linux-gnu amd64 4:15.2.0-4ubuntu1 [5730 B] 52s Get:40 http://ftpmaster.internal/ubuntu resolute/main amd64 binutils-i686-linux-gnu amd64 2.45-8ubuntu1 [1823 kB] 52s Get:41 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15-cross-base all 15.2.0-7ubuntu1cross1 [53.8 kB] 52s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 libc6-i386-cross all 2.42-0ubuntu3cross1 [1582 kB] 52s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 libgcc-s1-i386-cross all 15.2.0-7ubuntu1cross1 [94.2 kB] 52s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1-i386-cross all 15.2.0-7ubuntu1cross1 [152 kB] 52s Get:45 http://ftpmaster.internal/ubuntu resolute/main amd64 libitm1-i386-cross all 15.2.0-7ubuntu1cross1 [31.1 kB] 52s Get:46 http://ftpmaster.internal/ubuntu resolute/main amd64 libatomic1-i386-cross all 15.2.0-7ubuntu1cross1 [8158 B] 52s Get:47 http://ftpmaster.internal/ubuntu resolute/main amd64 libasan8-i386-cross all 15.2.0-7ubuntu1cross1 [2906 kB] 52s Get:48 http://ftpmaster.internal/ubuntu resolute/main amd64 libstdc++6-i386-cross all 15.2.0-7ubuntu1cross1 [827 kB] 52s Get:49 http://ftpmaster.internal/ubuntu resolute/main amd64 libubsan1-i386-cross all 15.2.0-7ubuntu1cross1 [1171 kB] 52s Get:50 http://ftpmaster.internal/ubuntu resolute/main amd64 libquadmath0-i386-cross all 15.2.0-7ubuntu1cross1 [245 kB] 52s Get:51 http://ftpmaster.internal/ubuntu resolute/main amd64 libgcc-15-dev-i386-cross all 15.2.0-7ubuntu1cross1 [2755 kB] 52s Get:52 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15-i686-linux-gnu amd64 15.2.0-7ubuntu1cross1 [27.0 MB] 53s Get:53 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-i686-linux-gnu amd64 4:15.2.0-4ubuntu1 [1220 B] 53s Get:54 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-libc-dev-i386-cross all 6.17.0-4.4cross1 [1503 kB] 53s Get:55 http://ftpmaster.internal/ubuntu resolute/main amd64 libc6-dev-i386-cross all 2.42-0ubuntu3cross1 [1992 kB] 53s Get:56 http://ftpmaster.internal/ubuntu resolute/main amd64 libstdc++-15-dev-i386-cross all 15.2.0-7ubuntu1cross1 [2655 kB] 53s Get:57 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15-i686-linux-gnu amd64 15.2.0-7ubuntu1cross1 [15.3 MB] 53s Get:58 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-i686-linux-gnu amd64 4:15.2.0-4ubuntu1 [954 B] 53s Get:59 http://ftpmaster.internal/ubuntu resolute/universe amd64 crossbuild-essential-i386 all 12.12ubuntu1 [3984 B] 53s Get:60 http://ftpmaster.internal/ubuntu resolute/main amd64 libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 53s Get:61 http://ftpmaster.internal/ubuntu resolute/main amd64 libtool all 2.5.4-4build1 [169 kB] 53s Get:62 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-autoreconf all 21 [12.5 kB] 53s Get:63 http://ftpmaster.internal/ubuntu resolute/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 53s Get:64 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-stripnondeterminism-perl all 1.14.2-1 [20.4 kB] 53s Get:65 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-strip-nondeterminism all 1.14.2-1 [5098 B] 53s Get:66 http://ftpmaster.internal/ubuntu resolute/main amd64 debugedit amd64 1:5.2-3 [49.9 kB] 53s Get:67 http://ftpmaster.internal/ubuntu resolute/main amd64 dwz amd64 0.16-2 [115 kB] 53s Get:68 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.1-2build2 [1043 kB] 53s Get:69 http://ftpmaster.internal/ubuntu resolute/main amd64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 53s Get:70 http://ftpmaster.internal/ubuntu resolute/main amd64 po-debconf all 1.0.21+nmu1 [233 kB] 53s Get:71 http://ftpmaster.internal/ubuntu resolute/main amd64 debhelper all 13.24.2ubuntu1 [896 kB] 53s Get:72 http://ftpmaster.internal/ubuntu resolute/universe i386 gcc-11-base i386 11.5.0-7ubuntu1 [46.4 kB] 53s Get:73 http://ftpmaster.internal/ubuntu resolute/main amd64 liberror-perl all 0.17030-1 [23.5 kB] 53s Get:74 http://ftpmaster.internal/ubuntu resolute/main amd64 git-man all 1:2.51.0-1ubuntu1 [1179 kB] 53s Get:75 http://ftpmaster.internal/ubuntu resolute/main amd64 git amd64 1:2.51.0-1ubuntu1 [4414 kB] 53s Get:76 http://ftpmaster.internal/ubuntu resolute/main amd64 javascript-common all 12+nmu1 [4828 B] 53s Get:77 http://ftpmaster.internal/ubuntu resolute/universe amd64 libalgorithm-c3-perl all 0.11-2 [10.2 kB] 53s Get:78 http://ftpmaster.internal/ubuntu resolute/universe i386 libasan6 i386 11.5.0-7ubuntu1 [2122 kB] 53s Get:79 http://ftpmaster.internal/ubuntu resolute/universe amd64 libautovivification-perl amd64 0.18-2build5 [22.6 kB] 53s Get:80 http://ftpmaster.internal/ubuntu resolute/main amd64 libb-hooks-op-check-perl amd64 0.22-3build2 [9624 B] 53s Get:81 http://ftpmaster.internal/ubuntu resolute/main amd64 libdynaloader-functions-perl all 0.004-2 [11.5 kB] 53s Get:82 http://ftpmaster.internal/ubuntu resolute/main amd64 libdevel-callchecker-perl amd64 0.009-2 [14.2 kB] 53s Get:83 http://ftpmaster.internal/ubuntu resolute/main amd64 libparams-classify-perl amd64 0.015-2build6 [20.1 kB] 53s Get:84 http://ftpmaster.internal/ubuntu resolute/main amd64 libmodule-runtime-perl all 0.018-1 [15.2 kB] 53s Get:85 http://ftpmaster.internal/ubuntu resolute/main amd64 libtry-tiny-perl all 0.32-1 [21.2 kB] 54s Get:86 http://ftpmaster.internal/ubuntu resolute/main amd64 libmodule-implementation-perl all 0.09-2 [12.0 kB] 54s Get:87 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-exporter-progressive-perl all 0.001013-3 [6718 B] 54s Get:88 http://ftpmaster.internal/ubuntu resolute/main amd64 libvariable-magic-perl amd64 0.64-1build1 [36.3 kB] 54s Get:89 http://ftpmaster.internal/ubuntu resolute/main amd64 libb-hooks-endofscope-perl all 0.28-2 [15.8 kB] 54s Get:90 http://ftpmaster.internal/ubuntu resolute/main amd64 libpackage-stash-perl all 0.40-1 [19.5 kB] 54s Get:91 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-identify-perl amd64 0.14-3build4 [9904 B] 54s Get:92 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-name-perl amd64 0.28-1 [10.7 kB] 54s Get:93 http://ftpmaster.internal/ubuntu resolute/main amd64 libnamespace-clean-perl all 0.27-2 [14.0 kB] 54s Get:94 http://ftpmaster.internal/ubuntu resolute/universe amd64 libbuiltin-compat-perl all 0.003003-2 [6956 B] 54s Get:95 http://ftpmaster.internal/ubuntu resolute/main i386 linux-libc-dev i386 6.17.0-5.5 [1813 kB] 54s Get:96 http://ftpmaster.internal/ubuntu resolute/main i386 libcrypt-dev i386 1:4.4.38-1build1 [121 kB] 54s Get:97 http://ftpmaster.internal/ubuntu resolute/main i386 libc6-dev i386 2.42-0ubuntu3 [1946 kB] 54s Get:98 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclass-c3-perl all 0.35-2 [18.4 kB] 54s Get:99 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-data-inheritable-perl all 0.10-1 [8038 B] 54s Get:100 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-inspector-perl all 1.36-3 [15.4 kB] 54s Get:101 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-method-modifiers-perl all 2.15-1 [16.1 kB] 54s Get:102 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclass-singleton-perl all 1.6-2 [11.5 kB] 54s Get:103 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclass-tiny-perl all 1.008-2 [16.4 kB] 54s Get:104 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-xsaccessor-perl amd64 1.19-4build6 [33.8 kB] 54s Get:105 http://ftpmaster.internal/ubuntu resolute/main amd64 libclone-perl amd64 0.47-1 [10.7 kB] 54s Get:106 http://ftpmaster.internal/ubuntu resolute/universe amd64 libcpan-meta-check-perl all 0.018-1 [6090 B] 54s Get:107 http://ftpmaster.internal/ubuntu resolute/universe amd64 libextutils-config-perl all 0.010-1 [7806 B] 54s Get:108 http://ftpmaster.internal/ubuntu resolute/universe amd64 libextutils-hascompiler-perl all 0.025-1 [7738 B] 54s Get:109 http://ftpmaster.internal/ubuntu resolute/universe amd64 libcpan-requirements-dynamic-perl all 0.002-1 [7582 B] 54s Get:110 http://ftpmaster.internal/ubuntu resolute/main amd64 libcpanel-json-xs-perl amd64 4.39-2 [116 kB] 54s Get:111 http://ftpmaster.internal/ubuntu resolute/main amd64 libparams-util-perl amd64 1.102-3build1 [21.4 kB] 54s Get:112 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-install-perl all 0.929-1 [9764 B] 54s Get:113 http://ftpmaster.internal/ubuntu resolute/main amd64 libdata-optlist-perl all 0.114-1 [9708 B] 54s Get:114 http://ftpmaster.internal/ubuntu resolute/main amd64 libnet-domain-tld-perl all 1.75-4 [29.0 kB] 54s Get:115 http://ftpmaster.internal/ubuntu resolute/main amd64 libdata-validate-domain-perl all 0.15-1 [10.4 kB] 54s Get:116 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-sharedir-perl all 1.118-3 [14.0 kB] 54s Get:117 http://ftpmaster.internal/ubuntu resolute/universe amd64 libnamespace-autoclean-perl all 0.31-1 [11.9 kB] 54s Get:118 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-exporter-perl all 0.990-1 [49.0 kB] 54s Get:119 http://ftpmaster.internal/ubuntu resolute/universe amd64 libeval-closure-perl all 0.14-3 [10.1 kB] 54s Get:120 http://ftpmaster.internal/ubuntu resolute/main amd64 libdevel-stacktrace-perl all 2.0500-1 [22.1 kB] 54s Get:121 http://ftpmaster.internal/ubuntu resolute/main amd64 libexception-class-perl all 1.45-1 [28.6 kB] 54s Get:122 http://ftpmaster.internal/ubuntu resolute/universe amd64 libparams-validationcompiler-perl all 0.31-1 [28.3 kB] 54s Get:123 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmro-compat-perl all 0.15-2 [10.1 kB] 54s Get:124 http://ftpmaster.internal/ubuntu resolute/main amd64 librole-tiny-perl all 2.002004-1 [16.3 kB] 54s Get:125 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-quote-perl all 2.006008-1ubuntu1 [20.7 kB] 54s Get:126 http://ftpmaster.internal/ubuntu resolute/universe amd64 libxstring-perl amd64 0.005-2build4 [7940 B] 54s Get:127 http://ftpmaster.internal/ubuntu resolute/universe amd64 libspecio-perl all 0.50-1 [127 kB] 54s Get:128 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-locale-perl all 1:1.41-1 [3193 kB] 54s Get:129 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-timezone-perl all 1:2.65-1+2025b [260 kB] 54s Get:130 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-perl amd64 2:1.65-1build3 [95.8 kB] 54s Get:131 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-format-rfc3339-perl all 1.10.0-1 [8154 B] 54s Get:132 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdevel-cycle-perl all 1.12-2 [10.1 kB] 54s Get:133 http://ftpmaster.internal/ubuntu resolute/main amd64 libemail-address-xs-perl amd64 1.05-1build5 [29.5 kB] 54s Get:134 http://ftpmaster.internal/ubuntu resolute/main amd64 libexporter-tiny-perl all 1.006002-1 [36.8 kB] 54s Get:135 http://ftpmaster.internal/ubuntu resolute/universe amd64 libextutils-helpers-perl all 0.028-1 [10.8 kB] 54s Get:136 http://ftpmaster.internal/ubuntu resolute/universe amd64 libextutils-installpaths-perl all 0.014-1 [13.2 kB] 54s Get:137 http://ftpmaster.internal/ubuntu resolute/main amd64 libxs-parse-keyword-perl amd64 0.48-2 [63.0 kB] 54s Get:138 http://ftpmaster.internal/ubuntu resolute/main amd64 libsyntax-keyword-try-perl amd64 0.30-1 [24.4 kB] 54s Get:139 http://ftpmaster.internal/ubuntu resolute/universe amd64 libfeature-compat-try-perl all 0.05-1 [9998 B] 54s Get:140 http://ftpmaster.internal/ubuntu resolute/universe amd64 libfile-chdir-perl all 0.1008-1.2 [10.4 kB] 54s Get:141 http://ftpmaster.internal/ubuntu resolute/universe amd64 libfile-copy-recursive-perl all 0.45-4 [16.5 kB] 54s Get:142 http://ftpmaster.internal/ubuntu resolute/main i386 libgomp1 i386 15.2.0-5ubuntu1 [155 kB] 54s Get:143 http://ftpmaster.internal/ubuntu resolute/main i386 libitm1 i386 15.2.0-5ubuntu1 [31.6 kB] 54s Get:144 http://ftpmaster.internal/ubuntu resolute/main i386 libubsan1 i386 15.2.0-5ubuntu1 [1172 kB] 54s Get:145 http://ftpmaster.internal/ubuntu resolute/main i386 libquadmath0 i386 15.2.0-5ubuntu1 [246 kB] 54s Get:146 http://ftpmaster.internal/ubuntu resolute/universe i386 libgcc-11-dev i386 11.5.0-7ubuntu1 [2450 kB] 54s Get:147 http://ftpmaster.internal/ubuntu resolute/main amd64 libio-stringy-perl all 2.113-2 [45.3 kB] 54s Get:148 http://ftpmaster.internal/ubuntu resolute/universe amd64 libparams-validate-perl amd64 1.31-2build4 [53.7 kB] 54s Get:149 http://ftpmaster.internal/ubuntu resolute/universe amd64 libgetopt-long-descriptive-perl all 0.116-2 [25.0 kB] 54s Get:150 http://ftpmaster.internal/ubuntu resolute/main amd64 libsort-versions-perl all 1.62-3 [7378 B] 54s Get:151 http://ftpmaster.internal/ubuntu resolute/universe amd64 libgit-wrapper-perl all 0.048-2 [29.5 kB] 54s Get:152 http://ftpmaster.internal/ubuntu resolute/main amd64 libimport-into-perl all 1.002005-2 [10.7 kB] 54s Get:153 http://ftpmaster.internal/ubuntu resolute/universe amd64 node-popper2 all 2.11.2-9 [106 kB] 54s Get:154 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-bootstrap5 all 5.3.5+dfsg-4 [479 kB] 54s Get:155 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 54s Get:156 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 54s Get:157 http://ftpmaster.internal/ubuntu resolute/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 54s Get:158 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmojolicious-perl all 9.39+dfsg-1 [761 kB] 54s Get:159 http://ftpmaster.internal/ubuntu resolute/main amd64 libmoo-perl all 2.005005-1 [47.4 kB] 54s Get:160 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtype-tiny-perl all 2.004000-2 [340 kB] 54s Get:161 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmoox-typetiny-perl all 0.002003-4 [5930 B] 54s Get:162 http://ftpmaster.internal/ubuntu resolute/main amd64 libpath-tiny-perl all 0.148-1 [47.9 kB] 54s Get:163 http://ftpmaster.internal/ubuntu resolute/universe amd64 libref-util-perl all 0.204-2 [15.1 kB] 54s Get:164 http://ftpmaster.internal/ubuntu resolute/universe amd64 libsafe-isa-perl all 1.000010-1 [7684 B] 54s Get:165 http://ftpmaster.internal/ubuntu resolute/main amd64 libstrictures-perl all 2.000006-1 [16.3 kB] 54s Get:166 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjson-schema-modern-perl all 0.611-1 [106 kB] 54s Get:167 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmodule-build-tiny-perl all 0.051-1 [9788 B] 54s Get:168 http://ftpmaster.internal/ubuntu resolute/universe amd64 libnet-idn-encode-perl amd64 2.500-5build1 [84.0 kB] 54s Get:169 http://ftpmaster.internal/ubuntu resolute/universe amd64 libpadwalker-perl amd64 2.5-1build7 [15.6 kB] 54s Get:170 http://ftpmaster.internal/ubuntu resolute/universe amd64 libref-util-xs-perl amd64 0.117-2build5 [12.8 kB] 54s Get:171 http://ftpmaster.internal/ubuntu resolute/universe amd64 libscope-guard-perl all 0.21-2 [7730 B] 54s Get:172 http://ftpmaster.internal/ubuntu resolute/main amd64 libsereal-decoder-perl amd64 5.004+ds-1build5 [101 kB] 54s Get:173 http://ftpmaster.internal/ubuntu resolute/main amd64 libsereal-encoder-perl amd64 5.004+ds-1build4 [105 kB] 54s Get:174 http://ftpmaster.internal/ubuntu resolute/universe amd64 libsereal-perl all 5.004-1 [8770 B] 54s Get:175 http://ftpmaster.internal/ubuntu resolute/universe i386 libstdc++-11-dev i386 11.5.0-7ubuntu1 [2459 kB] 54s Get:176 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-deep-perl all 1.205-1 [46.7 kB] 54s Get:177 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-deep-unorderedpairs-perl all 0.006-3 [9052 B] 54s Get:178 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-fatal-perl all 0.017-2 [12.1 kB] 54s Get:179 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-file-sharedir-perl all 1.001002-2 [26.3 kB] 54s Get:180 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest2-suite-perl all 0.000163-1 [377 kB] 54s Get:181 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-json-schema-acceptance-perl all 1.029-1 [89.9 kB] 54s Get:182 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-memory-cycle-perl all 1.06-2 [11.0 kB] 54s Get:183 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-needs-perl all 0.002010-1 [8530 B] 54s Get:184 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-warnings-perl all 0.038-1 [21.0 kB] 54s Get:185 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-without-module-perl all 0.23-1 [9732 B] 54s Get:186 http://ftpmaster.internal/ubuntu resolute/main amd64 libtime-moment-perl amd64 0.44-2build5 [71.6 kB] 54s Get:187 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtype-tiny-xs-perl amd64 0.025-2build1 [25.0 kB] 54s Get:188 http://ftpmaster.internal/ubuntu resolute/universe amd64 pkg-perl-autopkgtest all 0.82 [18.8 kB] 54s Fetched 176 MB in 6s (28.7 MB/s) 54s Selecting previously unselected package libcrypt1:i386. 55s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 78531 files and directories currently installed.) 55s Preparing to unpack .../000-libcrypt1_1%3a4.4.38-1build1_i386.deb ... 55s Unpacking libcrypt1:i386 (1:4.4.38-1build1) ... 55s Selecting previously unselected package libatomic1:i386. 55s Preparing to unpack .../001-libatomic1_15.2.0-5ubuntu1_i386.deb ... 55s Unpacking libatomic1:i386 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package libstdc++6:i386. 55s Preparing to unpack .../002-libstdc++6_15.2.0-5ubuntu1_i386.deb ... 55s Unpacking libstdc++6:i386 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package m4. 55s Preparing to unpack .../003-m4_1.4.19-8_amd64.deb ... 55s Unpacking m4 (1.4.19-8) ... 55s Selecting previously unselected package autoconf. 55s Preparing to unpack .../004-autoconf_2.72-3.1ubuntu1_all.deb ... 55s Unpacking autoconf (2.72-3.1ubuntu1) ... 55s Selecting previously unselected package dctrl-tools. 55s Preparing to unpack .../005-dctrl-tools_2.24-3build3_amd64.deb ... 55s Unpacking dctrl-tools (2.24-3build3) ... 55s Selecting previously unselected package autodep8. 55s Preparing to unpack .../006-autodep8_0.30_all.deb ... 55s Unpacking autodep8 (0.30) ... 55s Selecting previously unselected package autotools-dev. 55s Preparing to unpack .../007-autotools-dev_20240727.1_all.deb ... 55s Unpacking autotools-dev (20240727.1) ... 55s Selecting previously unselected package automake. 55s Preparing to unpack .../008-automake_1%3a1.17-4ubuntu1_all.deb ... 55s Unpacking automake (1:1.17-4ubuntu1) ... 55s Selecting previously unselected package autopoint. 55s Preparing to unpack .../009-autopoint_0.23.1-2build2_all.deb ... 55s Unpacking autopoint (0.23.1-2build2) ... 55s Selecting previously unselected package libisl23:amd64. 55s Preparing to unpack .../010-libisl23_0.27-1_amd64.deb ... 55s Unpacking libisl23:amd64 (0.27-1) ... 55s Selecting previously unselected package libmpc3:amd64. 55s Preparing to unpack .../011-libmpc3_1.3.1-1build3_amd64.deb ... 55s Unpacking libmpc3:amd64 (1.3.1-1build3) ... 55s Selecting previously unselected package cpp-15-x86-64-linux-gnu. 55s Preparing to unpack .../012-cpp-15-x86-64-linux-gnu_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking cpp-15-x86-64-linux-gnu (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package cpp-15. 55s Preparing to unpack .../013-cpp-15_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking cpp-15 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package cpp-x86-64-linux-gnu. 55s Preparing to unpack .../014-cpp-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 55s Unpacking cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 55s Selecting previously unselected package cpp. 55s Preparing to unpack .../015-cpp_4%3a15.2.0-4ubuntu1_amd64.deb ... 55s Unpacking cpp (4:15.2.0-4ubuntu1) ... 55s Selecting previously unselected package libcc1-0:amd64. 55s Preparing to unpack .../016-libcc1-0_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking libcc1-0:amd64 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package libgomp1:amd64. 55s Preparing to unpack .../017-libgomp1_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking libgomp1:amd64 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package libitm1:amd64. 55s Preparing to unpack .../018-libitm1_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking libitm1:amd64 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package libasan8:amd64. 55s Preparing to unpack .../019-libasan8_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking libasan8:amd64 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package liblsan0:amd64. 55s Preparing to unpack .../020-liblsan0_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking liblsan0:amd64 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package libtsan2:amd64. 55s Preparing to unpack .../021-libtsan2_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking libtsan2:amd64 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package libubsan1:amd64. 55s Preparing to unpack .../022-libubsan1_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking libubsan1:amd64 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package libhwasan0:amd64. 55s Preparing to unpack .../023-libhwasan0_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking libhwasan0:amd64 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package libquadmath0:amd64. 55s Preparing to unpack .../024-libquadmath0_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking libquadmath0:amd64 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package libgcc-15-dev:amd64. 55s Preparing to unpack .../025-libgcc-15-dev_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking libgcc-15-dev:amd64 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package gcc-15-x86-64-linux-gnu. 55s Preparing to unpack .../026-gcc-15-x86-64-linux-gnu_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking gcc-15-x86-64-linux-gnu (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package gcc-15. 55s Preparing to unpack .../027-gcc-15_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking gcc-15 (15.2.0-5ubuntu1) ... 55s Selecting previously unselected package gcc-x86-64-linux-gnu. 55s Preparing to unpack .../028-gcc-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 55s Unpacking gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 55s Selecting previously unselected package gcc. 55s Preparing to unpack .../029-gcc_4%3a15.2.0-4ubuntu1_amd64.deb ... 55s Unpacking gcc (4:15.2.0-4ubuntu1) ... 55s Selecting previously unselected package libstdc++-15-dev:amd64. 55s Preparing to unpack .../030-libstdc++-15-dev_15.2.0-5ubuntu1_amd64.deb ... 55s Unpacking libstdc++-15-dev:amd64 (15.2.0-5ubuntu1) ... 56s Selecting previously unselected package g++-15-x86-64-linux-gnu. 56s Preparing to unpack .../031-g++-15-x86-64-linux-gnu_15.2.0-5ubuntu1_amd64.deb ... 56s Unpacking g++-15-x86-64-linux-gnu (15.2.0-5ubuntu1) ... 56s Selecting previously unselected package g++-15. 56s Preparing to unpack .../032-g++-15_15.2.0-5ubuntu1_amd64.deb ... 56s Unpacking g++-15 (15.2.0-5ubuntu1) ... 56s Selecting previously unselected package g++-x86-64-linux-gnu. 56s Preparing to unpack .../033-g++-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 56s Unpacking g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 56s Selecting previously unselected package g++. 56s Preparing to unpack .../034-g++_4%3a15.2.0-4ubuntu1_amd64.deb ... 56s Unpacking g++ (4:15.2.0-4ubuntu1) ... 56s Selecting previously unselected package build-essential. 56s Preparing to unpack .../035-build-essential_12.12ubuntu1_amd64.deb ... 56s Unpacking build-essential (12.12ubuntu1) ... 56s Selecting previously unselected package gcc-15-i686-linux-gnu-base:amd64. 56s Preparing to unpack .../036-gcc-15-i686-linux-gnu-base_15.2.0-7ubuntu1cross1_amd64.deb ... 56s Unpacking gcc-15-i686-linux-gnu-base:amd64 (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package cpp-15-i686-linux-gnu. 56s Preparing to unpack .../037-cpp-15-i686-linux-gnu_15.2.0-7ubuntu1cross1_amd64.deb ... 56s Unpacking cpp-15-i686-linux-gnu (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package cpp-i686-linux-gnu. 56s Preparing to unpack .../038-cpp-i686-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 56s Unpacking cpp-i686-linux-gnu (4:15.2.0-4ubuntu1) ... 56s Selecting previously unselected package binutils-i686-linux-gnu. 56s Preparing to unpack .../039-binutils-i686-linux-gnu_2.45-8ubuntu1_amd64.deb ... 56s Unpacking binutils-i686-linux-gnu (2.45-8ubuntu1) ... 56s Selecting previously unselected package gcc-15-cross-base. 56s Preparing to unpack .../040-gcc-15-cross-base_15.2.0-7ubuntu1cross1_all.deb ... 56s Unpacking gcc-15-cross-base (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package libc6-i386-cross. 56s Preparing to unpack .../041-libc6-i386-cross_2.42-0ubuntu3cross1_all.deb ... 56s Unpacking libc6-i386-cross (2.42-0ubuntu3cross1) ... 56s Selecting previously unselected package libgcc-s1-i386-cross. 56s Preparing to unpack .../042-libgcc-s1-i386-cross_15.2.0-7ubuntu1cross1_all.deb ... 56s Unpacking libgcc-s1-i386-cross (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package libgomp1-i386-cross. 56s Preparing to unpack .../043-libgomp1-i386-cross_15.2.0-7ubuntu1cross1_all.deb ... 56s Unpacking libgomp1-i386-cross (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package libitm1-i386-cross. 56s Preparing to unpack .../044-libitm1-i386-cross_15.2.0-7ubuntu1cross1_all.deb ... 56s Unpacking libitm1-i386-cross (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package libatomic1-i386-cross. 56s Preparing to unpack .../045-libatomic1-i386-cross_15.2.0-7ubuntu1cross1_all.deb ... 56s Unpacking libatomic1-i386-cross (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package libasan8-i386-cross. 56s Preparing to unpack .../046-libasan8-i386-cross_15.2.0-7ubuntu1cross1_all.deb ... 56s Unpacking libasan8-i386-cross (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package libstdc++6-i386-cross. 56s Preparing to unpack .../047-libstdc++6-i386-cross_15.2.0-7ubuntu1cross1_all.deb ... 56s Unpacking libstdc++6-i386-cross (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package libubsan1-i386-cross. 56s Preparing to unpack .../048-libubsan1-i386-cross_15.2.0-7ubuntu1cross1_all.deb ... 56s Unpacking libubsan1-i386-cross (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package libquadmath0-i386-cross. 56s Preparing to unpack .../049-libquadmath0-i386-cross_15.2.0-7ubuntu1cross1_all.deb ... 56s Unpacking libquadmath0-i386-cross (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package libgcc-15-dev-i386-cross. 56s Preparing to unpack .../050-libgcc-15-dev-i386-cross_15.2.0-7ubuntu1cross1_all.deb ... 56s Unpacking libgcc-15-dev-i386-cross (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package gcc-15-i686-linux-gnu. 56s Preparing to unpack .../051-gcc-15-i686-linux-gnu_15.2.0-7ubuntu1cross1_amd64.deb ... 56s Unpacking gcc-15-i686-linux-gnu (15.2.0-7ubuntu1cross1) ... 56s Selecting previously unselected package gcc-i686-linux-gnu. 56s Preparing to unpack .../052-gcc-i686-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 56s Unpacking gcc-i686-linux-gnu (4:15.2.0-4ubuntu1) ... 56s Selecting previously unselected package linux-libc-dev-i386-cross. 56s Preparing to unpack .../053-linux-libc-dev-i386-cross_6.17.0-4.4cross1_all.deb ... 56s Unpacking linux-libc-dev-i386-cross (6.17.0-4.4cross1) ... 57s Selecting previously unselected package libc6-dev-i386-cross. 57s Preparing to unpack .../054-libc6-dev-i386-cross_2.42-0ubuntu3cross1_all.deb ... 57s Unpacking libc6-dev-i386-cross (2.42-0ubuntu3cross1) ... 57s Selecting previously unselected package libstdc++-15-dev-i386-cross. 57s Preparing to unpack .../055-libstdc++-15-dev-i386-cross_15.2.0-7ubuntu1cross1_all.deb ... 57s Unpacking libstdc++-15-dev-i386-cross (15.2.0-7ubuntu1cross1) ... 57s Selecting previously unselected package g++-15-i686-linux-gnu. 57s Preparing to unpack .../056-g++-15-i686-linux-gnu_15.2.0-7ubuntu1cross1_amd64.deb ... 57s Unpacking g++-15-i686-linux-gnu (15.2.0-7ubuntu1cross1) ... 57s Selecting previously unselected package g++-i686-linux-gnu. 57s Preparing to unpack .../057-g++-i686-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 57s Unpacking g++-i686-linux-gnu (4:15.2.0-4ubuntu1) ... 57s Selecting previously unselected package crossbuild-essential-i386. 57s Preparing to unpack .../058-crossbuild-essential-i386_12.12ubuntu1_all.deb ... 57s Unpacking crossbuild-essential-i386 (12.12ubuntu1) ... 57s Selecting previously unselected package libdebhelper-perl. 57s Preparing to unpack .../059-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 57s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 57s Selecting previously unselected package libtool. 57s Preparing to unpack .../060-libtool_2.5.4-4build1_all.deb ... 57s Unpacking libtool (2.5.4-4build1) ... 57s Selecting previously unselected package dh-autoreconf. 57s Preparing to unpack .../061-dh-autoreconf_21_all.deb ... 57s Unpacking dh-autoreconf (21) ... 57s Selecting previously unselected package libarchive-zip-perl. 57s Preparing to unpack .../062-libarchive-zip-perl_1.68-1_all.deb ... 57s Unpacking libarchive-zip-perl (1.68-1) ... 57s Selecting previously unselected package libfile-stripnondeterminism-perl. 57s Preparing to unpack .../063-libfile-stripnondeterminism-perl_1.14.2-1_all.deb ... 57s Unpacking libfile-stripnondeterminism-perl (1.14.2-1) ... 57s Selecting previously unselected package dh-strip-nondeterminism. 57s Preparing to unpack .../064-dh-strip-nondeterminism_1.14.2-1_all.deb ... 57s Unpacking dh-strip-nondeterminism (1.14.2-1) ... 57s Selecting previously unselected package debugedit. 57s Preparing to unpack .../065-debugedit_1%3a5.2-3_amd64.deb ... 57s Unpacking debugedit (1:5.2-3) ... 57s Selecting previously unselected package dwz. 57s Preparing to unpack .../066-dwz_0.16-2_amd64.deb ... 57s Unpacking dwz (0.16-2) ... 57s Selecting previously unselected package gettext. 57s Preparing to unpack .../067-gettext_0.23.1-2build2_amd64.deb ... 57s Unpacking gettext (0.23.1-2build2) ... 57s Selecting previously unselected package intltool-debian. 57s Preparing to unpack .../068-intltool-debian_0.35.0+20060710.6_all.deb ... 57s Unpacking intltool-debian (0.35.0+20060710.6) ... 57s Selecting previously unselected package po-debconf. 57s Preparing to unpack .../069-po-debconf_1.0.21+nmu1_all.deb ... 57s Unpacking po-debconf (1.0.21+nmu1) ... 57s Selecting previously unselected package debhelper. 57s Preparing to unpack .../070-debhelper_13.24.2ubuntu1_all.deb ... 57s Unpacking debhelper (13.24.2ubuntu1) ... 57s Selecting previously unselected package gcc-11-base:i386. 57s Preparing to unpack .../071-gcc-11-base_11.5.0-7ubuntu1_i386.deb ... 57s Unpacking gcc-11-base:i386 (11.5.0-7ubuntu1) ... 57s Selecting previously unselected package liberror-perl. 57s Preparing to unpack .../072-liberror-perl_0.17030-1_all.deb ... 57s Unpacking liberror-perl (0.17030-1) ... 57s Selecting previously unselected package git-man. 57s Preparing to unpack .../073-git-man_1%3a2.51.0-1ubuntu1_all.deb ... 57s Unpacking git-man (1:2.51.0-1ubuntu1) ... 57s Selecting previously unselected package git. 57s Preparing to unpack .../074-git_1%3a2.51.0-1ubuntu1_amd64.deb ... 57s Unpacking git (1:2.51.0-1ubuntu1) ... 57s Selecting previously unselected package javascript-common. 57s Preparing to unpack .../075-javascript-common_12+nmu1_all.deb ... 57s Unpacking javascript-common (12+nmu1) ... 57s Selecting previously unselected package libalgorithm-c3-perl. 57s Preparing to unpack .../076-libalgorithm-c3-perl_0.11-2_all.deb ... 57s Unpacking libalgorithm-c3-perl (0.11-2) ... 57s Selecting previously unselected package libasan6:i386. 57s Preparing to unpack .../077-libasan6_11.5.0-7ubuntu1_i386.deb ... 57s Unpacking libasan6:i386 (11.5.0-7ubuntu1) ... 57s Selecting previously unselected package libautovivification-perl:amd64. 57s Preparing to unpack .../078-libautovivification-perl_0.18-2build5_amd64.deb ... 57s Unpacking libautovivification-perl:amd64 (0.18-2build5) ... 57s Selecting previously unselected package libb-hooks-op-check-perl:amd64. 57s Preparing to unpack .../079-libb-hooks-op-check-perl_0.22-3build2_amd64.deb ... 57s Unpacking libb-hooks-op-check-perl:amd64 (0.22-3build2) ... 57s Selecting previously unselected package libdynaloader-functions-perl. 57s Preparing to unpack .../080-libdynaloader-functions-perl_0.004-2_all.deb ... 57s Unpacking libdynaloader-functions-perl (0.004-2) ... 57s Selecting previously unselected package libdevel-callchecker-perl:amd64. 57s Preparing to unpack .../081-libdevel-callchecker-perl_0.009-2_amd64.deb ... 57s Unpacking libdevel-callchecker-perl:amd64 (0.009-2) ... 57s Selecting previously unselected package libparams-classify-perl:amd64. 57s Preparing to unpack .../082-libparams-classify-perl_0.015-2build6_amd64.deb ... 57s Unpacking libparams-classify-perl:amd64 (0.015-2build6) ... 57s Selecting previously unselected package libmodule-runtime-perl. 57s Preparing to unpack .../083-libmodule-runtime-perl_0.018-1_all.deb ... 57s Unpacking libmodule-runtime-perl (0.018-1) ... 57s Selecting previously unselected package libtry-tiny-perl. 57s Preparing to unpack .../084-libtry-tiny-perl_0.32-1_all.deb ... 57s Unpacking libtry-tiny-perl (0.32-1) ... 57s Selecting previously unselected package libmodule-implementation-perl. 57s Preparing to unpack .../085-libmodule-implementation-perl_0.09-2_all.deb ... 57s Unpacking libmodule-implementation-perl (0.09-2) ... 57s Selecting previously unselected package libsub-exporter-progressive-perl. 57s Preparing to unpack .../086-libsub-exporter-progressive-perl_0.001013-3_all.deb ... 57s Unpacking libsub-exporter-progressive-perl (0.001013-3) ... 57s Selecting previously unselected package libvariable-magic-perl. 57s Preparing to unpack .../087-libvariable-magic-perl_0.64-1build1_amd64.deb ... 57s Unpacking libvariable-magic-perl (0.64-1build1) ... 57s Selecting previously unselected package libb-hooks-endofscope-perl. 57s Preparing to unpack .../088-libb-hooks-endofscope-perl_0.28-2_all.deb ... 57s Unpacking libb-hooks-endofscope-perl (0.28-2) ... 57s Selecting previously unselected package libpackage-stash-perl. 57s Preparing to unpack .../089-libpackage-stash-perl_0.40-1_all.deb ... 57s Unpacking libpackage-stash-perl (0.40-1) ... 57s Selecting previously unselected package libsub-identify-perl. 57s Preparing to unpack .../090-libsub-identify-perl_0.14-3build4_amd64.deb ... 57s Unpacking libsub-identify-perl (0.14-3build4) ... 57s Selecting previously unselected package libsub-name-perl:amd64. 57s Preparing to unpack .../091-libsub-name-perl_0.28-1_amd64.deb ... 57s Unpacking libsub-name-perl:amd64 (0.28-1) ... 57s Selecting previously unselected package libnamespace-clean-perl. 57s Preparing to unpack .../092-libnamespace-clean-perl_0.27-2_all.deb ... 57s Unpacking libnamespace-clean-perl (0.27-2) ... 57s Selecting previously unselected package libbuiltin-compat-perl. 57s Preparing to unpack .../093-libbuiltin-compat-perl_0.003003-2_all.deb ... 57s Unpacking libbuiltin-compat-perl (0.003003-2) ... 57s Selecting previously unselected package linux-libc-dev:i386. 57s Preparing to unpack .../094-linux-libc-dev_6.17.0-5.5_i386.deb ... 57s Unpacking linux-libc-dev:i386 (6.17.0-5.5) ... 58s Selecting previously unselected package libcrypt-dev:i386. 58s Preparing to unpack .../095-libcrypt-dev_1%3a4.4.38-1build1_i386.deb ... 58s Unpacking libcrypt-dev:i386 (1:4.4.38-1build1) ... 58s Selecting previously unselected package libc6-dev:i386. 58s Preparing to unpack .../096-libc6-dev_2.42-0ubuntu3_i386.deb ... 58s Unpacking libc6-dev:i386 (2.42-0ubuntu3) ... 58s Selecting previously unselected package libclass-c3-perl. 58s Preparing to unpack .../097-libclass-c3-perl_0.35-2_all.deb ... 58s Unpacking libclass-c3-perl (0.35-2) ... 58s Selecting previously unselected package libclass-data-inheritable-perl. 58s Preparing to unpack .../098-libclass-data-inheritable-perl_0.10-1_all.deb ... 58s Unpacking libclass-data-inheritable-perl (0.10-1) ... 58s Selecting previously unselected package libclass-inspector-perl. 58s Preparing to unpack .../099-libclass-inspector-perl_1.36-3_all.deb ... 58s Unpacking libclass-inspector-perl (1.36-3) ... 58s Selecting previously unselected package libclass-method-modifiers-perl. 58s Preparing to unpack .../100-libclass-method-modifiers-perl_2.15-1_all.deb ... 58s Unpacking libclass-method-modifiers-perl (2.15-1) ... 58s Selecting previously unselected package libclass-singleton-perl. 58s Preparing to unpack .../101-libclass-singleton-perl_1.6-2_all.deb ... 58s Unpacking libclass-singleton-perl (1.6-2) ... 58s Selecting previously unselected package libclass-tiny-perl. 58s Preparing to unpack .../102-libclass-tiny-perl_1.008-2_all.deb ... 58s Unpacking libclass-tiny-perl (1.008-2) ... 58s Selecting previously unselected package libclass-xsaccessor-perl. 58s Preparing to unpack .../103-libclass-xsaccessor-perl_1.19-4build6_amd64.deb ... 58s Unpacking libclass-xsaccessor-perl (1.19-4build6) ... 58s Selecting previously unselected package libclone-perl:amd64. 58s Preparing to unpack .../104-libclone-perl_0.47-1_amd64.deb ... 58s Unpacking libclone-perl:amd64 (0.47-1) ... 58s Selecting previously unselected package libcpan-meta-check-perl. 58s Preparing to unpack .../105-libcpan-meta-check-perl_0.018-1_all.deb ... 58s Unpacking libcpan-meta-check-perl (0.018-1) ... 58s Selecting previously unselected package libextutils-config-perl. 58s Preparing to unpack .../106-libextutils-config-perl_0.010-1_all.deb ... 58s Unpacking libextutils-config-perl (0.010-1) ... 58s Selecting previously unselected package libextutils-hascompiler-perl. 58s Preparing to unpack .../107-libextutils-hascompiler-perl_0.025-1_all.deb ... 58s Unpacking libextutils-hascompiler-perl (0.025-1) ... 58s Selecting previously unselected package libcpan-requirements-dynamic-perl. 58s Preparing to unpack .../108-libcpan-requirements-dynamic-perl_0.002-1_all.deb ... 58s Unpacking libcpan-requirements-dynamic-perl (0.002-1) ... 58s Selecting previously unselected package libcpanel-json-xs-perl:amd64. 58s Preparing to unpack .../109-libcpanel-json-xs-perl_4.39-2_amd64.deb ... 58s Unpacking libcpanel-json-xs-perl:amd64 (4.39-2) ... 58s Selecting previously unselected package libparams-util-perl. 58s Preparing to unpack .../110-libparams-util-perl_1.102-3build1_amd64.deb ... 58s Unpacking libparams-util-perl (1.102-3build1) ... 58s Selecting previously unselected package libsub-install-perl. 58s Preparing to unpack .../111-libsub-install-perl_0.929-1_all.deb ... 58s Unpacking libsub-install-perl (0.929-1) ... 58s Selecting previously unselected package libdata-optlist-perl. 58s Preparing to unpack .../112-libdata-optlist-perl_0.114-1_all.deb ... 58s Unpacking libdata-optlist-perl (0.114-1) ... 58s Selecting previously unselected package libnet-domain-tld-perl. 58s Preparing to unpack .../113-libnet-domain-tld-perl_1.75-4_all.deb ... 58s Unpacking libnet-domain-tld-perl (1.75-4) ... 58s Selecting previously unselected package libdata-validate-domain-perl. 58s Preparing to unpack .../114-libdata-validate-domain-perl_0.15-1_all.deb ... 58s Unpacking libdata-validate-domain-perl (0.15-1) ... 58s Selecting previously unselected package libfile-sharedir-perl. 58s Preparing to unpack .../115-libfile-sharedir-perl_1.118-3_all.deb ... 58s Unpacking libfile-sharedir-perl (1.118-3) ... 58s Selecting previously unselected package libnamespace-autoclean-perl. 58s Preparing to unpack .../116-libnamespace-autoclean-perl_0.31-1_all.deb ... 58s Unpacking libnamespace-autoclean-perl (0.31-1) ... 58s Selecting previously unselected package libsub-exporter-perl. 58s Preparing to unpack .../117-libsub-exporter-perl_0.990-1_all.deb ... 58s Unpacking libsub-exporter-perl (0.990-1) ... 58s Selecting previously unselected package libeval-closure-perl. 58s Preparing to unpack .../118-libeval-closure-perl_0.14-3_all.deb ... 58s Unpacking libeval-closure-perl (0.14-3) ... 58s Selecting previously unselected package libdevel-stacktrace-perl. 58s Preparing to unpack .../119-libdevel-stacktrace-perl_2.0500-1_all.deb ... 58s Unpacking libdevel-stacktrace-perl (2.0500-1) ... 58s Selecting previously unselected package libexception-class-perl. 58s Preparing to unpack .../120-libexception-class-perl_1.45-1_all.deb ... 58s Unpacking libexception-class-perl (1.45-1) ... 58s Selecting previously unselected package libparams-validationcompiler-perl. 58s Preparing to unpack .../121-libparams-validationcompiler-perl_0.31-1_all.deb ... 58s Unpacking libparams-validationcompiler-perl (0.31-1) ... 58s Selecting previously unselected package libmro-compat-perl. 58s Preparing to unpack .../122-libmro-compat-perl_0.15-2_all.deb ... 58s Unpacking libmro-compat-perl (0.15-2) ... 58s Selecting previously unselected package librole-tiny-perl. 58s Preparing to unpack .../123-librole-tiny-perl_2.002004-1_all.deb ... 58s Unpacking librole-tiny-perl (2.002004-1) ... 58s Selecting previously unselected package libsub-quote-perl. 58s Preparing to unpack .../124-libsub-quote-perl_2.006008-1ubuntu1_all.deb ... 58s Unpacking libsub-quote-perl (2.006008-1ubuntu1) ... 58s Selecting previously unselected package libxstring-perl:amd64. 58s Preparing to unpack .../125-libxstring-perl_0.005-2build4_amd64.deb ... 58s Unpacking libxstring-perl:amd64 (0.005-2build4) ... 58s Selecting previously unselected package libspecio-perl. 58s Preparing to unpack .../126-libspecio-perl_0.50-1_all.deb ... 58s Unpacking libspecio-perl (0.50-1) ... 58s Selecting previously unselected package libdatetime-locale-perl. 58s Preparing to unpack .../127-libdatetime-locale-perl_1%3a1.41-1_all.deb ... 58s Unpacking libdatetime-locale-perl (1:1.41-1) ... 58s Selecting previously unselected package libdatetime-timezone-perl. 58s Preparing to unpack .../128-libdatetime-timezone-perl_1%3a2.65-1+2025b_all.deb ... 58s Unpacking libdatetime-timezone-perl (1:2.65-1+2025b) ... 58s Selecting previously unselected package libdatetime-perl. 58s Preparing to unpack .../129-libdatetime-perl_2%3a1.65-1build3_amd64.deb ... 58s Unpacking libdatetime-perl (2:1.65-1build3) ... 58s Selecting previously unselected package libdatetime-format-rfc3339-perl. 58s Preparing to unpack .../130-libdatetime-format-rfc3339-perl_1.10.0-1_all.deb ... 58s Unpacking libdatetime-format-rfc3339-perl (1.10.0-1) ... 58s Selecting previously unselected package libdevel-cycle-perl. 58s Preparing to unpack .../131-libdevel-cycle-perl_1.12-2_all.deb ... 58s Unpacking libdevel-cycle-perl (1.12-2) ... 58s Selecting previously unselected package libemail-address-xs-perl. 58s Preparing to unpack .../132-libemail-address-xs-perl_1.05-1build5_amd64.deb ... 58s Unpacking libemail-address-xs-perl (1.05-1build5) ... 58s Selecting previously unselected package libexporter-tiny-perl. 58s Preparing to unpack .../133-libexporter-tiny-perl_1.006002-1_all.deb ... 58s Unpacking libexporter-tiny-perl (1.006002-1) ... 58s Selecting previously unselected package libextutils-helpers-perl. 58s Preparing to unpack .../134-libextutils-helpers-perl_0.028-1_all.deb ... 58s Unpacking libextutils-helpers-perl (0.028-1) ... 58s Selecting previously unselected package libextutils-installpaths-perl. 58s Preparing to unpack .../135-libextutils-installpaths-perl_0.014-1_all.deb ... 58s Unpacking libextutils-installpaths-perl (0.014-1) ... 58s Selecting previously unselected package libxs-parse-keyword-perl. 58s Preparing to unpack .../136-libxs-parse-keyword-perl_0.48-2_amd64.deb ... 58s Unpacking libxs-parse-keyword-perl (0.48-2) ... 58s Selecting previously unselected package libsyntax-keyword-try-perl. 58s Preparing to unpack .../137-libsyntax-keyword-try-perl_0.30-1_amd64.deb ... 58s Unpacking libsyntax-keyword-try-perl (0.30-1) ... 58s Selecting previously unselected package libfeature-compat-try-perl. 58s Preparing to unpack .../138-libfeature-compat-try-perl_0.05-1_all.deb ... 58s Unpacking libfeature-compat-try-perl (0.05-1) ... 58s Selecting previously unselected package libfile-chdir-perl. 58s Preparing to unpack .../139-libfile-chdir-perl_0.1008-1.2_all.deb ... 58s Unpacking libfile-chdir-perl (0.1008-1.2) ... 58s Selecting previously unselected package libfile-copy-recursive-perl. 58s Preparing to unpack .../140-libfile-copy-recursive-perl_0.45-4_all.deb ... 58s Unpacking libfile-copy-recursive-perl (0.45-4) ... 58s Selecting previously unselected package libgomp1:i386. 58s Preparing to unpack .../141-libgomp1_15.2.0-5ubuntu1_i386.deb ... 58s Unpacking libgomp1:i386 (15.2.0-5ubuntu1) ... 58s Selecting previously unselected package libitm1:i386. 58s Preparing to unpack .../142-libitm1_15.2.0-5ubuntu1_i386.deb ... 58s Unpacking libitm1:i386 (15.2.0-5ubuntu1) ... 58s Selecting previously unselected package libubsan1:i386. 58s Preparing to unpack .../143-libubsan1_15.2.0-5ubuntu1_i386.deb ... 58s Unpacking libubsan1:i386 (15.2.0-5ubuntu1) ... 58s Selecting previously unselected package libquadmath0:i386. 58s Preparing to unpack .../144-libquadmath0_15.2.0-5ubuntu1_i386.deb ... 58s Unpacking libquadmath0:i386 (15.2.0-5ubuntu1) ... 58s Selecting previously unselected package libgcc-11-dev:i386. 58s Preparing to unpack .../145-libgcc-11-dev_11.5.0-7ubuntu1_i386.deb ... 58s Unpacking libgcc-11-dev:i386 (11.5.0-7ubuntu1) ... 59s Selecting previously unselected package libio-stringy-perl. 59s Preparing to unpack .../146-libio-stringy-perl_2.113-2_all.deb ... 59s Unpacking libio-stringy-perl (2.113-2) ... 59s Selecting previously unselected package libparams-validate-perl:amd64. 59s Preparing to unpack .../147-libparams-validate-perl_1.31-2build4_amd64.deb ... 59s Unpacking libparams-validate-perl:amd64 (1.31-2build4) ... 59s Selecting previously unselected package libgetopt-long-descriptive-perl. 59s Preparing to unpack .../148-libgetopt-long-descriptive-perl_0.116-2_all.deb ... 59s Unpacking libgetopt-long-descriptive-perl (0.116-2) ... 59s Selecting previously unselected package libsort-versions-perl. 59s Preparing to unpack .../149-libsort-versions-perl_1.62-3_all.deb ... 59s Unpacking libsort-versions-perl (1.62-3) ... 59s Selecting previously unselected package libgit-wrapper-perl. 59s Preparing to unpack .../150-libgit-wrapper-perl_0.048-2_all.deb ... 59s Unpacking libgit-wrapper-perl (0.048-2) ... 59s Selecting previously unselected package libimport-into-perl. 59s Preparing to unpack .../151-libimport-into-perl_1.002005-2_all.deb ... 59s Unpacking libimport-into-perl (1.002005-2) ... 59s Selecting previously unselected package node-popper2. 59s Preparing to unpack .../152-node-popper2_2.11.2-9_all.deb ... 59s Unpacking node-popper2 (2.11.2-9) ... 59s Selecting previously unselected package libjs-bootstrap5. 59s Preparing to unpack .../153-libjs-bootstrap5_5.3.5+dfsg-4_all.deb ... 59s Unpacking libjs-bootstrap5 (5.3.5+dfsg-4) ... 59s Selecting previously unselected package libjs-highlight.js. 59s Preparing to unpack .../154-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 59s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 59s Selecting previously unselected package libjs-popper.js. 59s Preparing to unpack .../155-libjs-popper.js_1.16.1+ds-6_all.deb ... 59s Unpacking libjs-popper.js (1.16.1+ds-6) ... 59s Selecting previously unselected package libjson-perl. 59s Preparing to unpack .../156-libjson-perl_4.10000-1_all.deb ... 59s Unpacking libjson-perl (4.10000-1) ... 59s Selecting previously unselected package libmojolicious-perl. 59s Preparing to unpack .../157-libmojolicious-perl_9.39+dfsg-1_all.deb ... 59s Unpacking libmojolicious-perl (9.39+dfsg-1) ... 59s Selecting previously unselected package libmoo-perl. 59s Preparing to unpack .../158-libmoo-perl_2.005005-1_all.deb ... 59s Unpacking libmoo-perl (2.005005-1) ... 59s Selecting previously unselected package libtype-tiny-perl. 59s Preparing to unpack .../159-libtype-tiny-perl_2.004000-2_all.deb ... 59s Unpacking libtype-tiny-perl (2.004000-2) ... 59s Selecting previously unselected package libmoox-typetiny-perl. 59s Preparing to unpack .../160-libmoox-typetiny-perl_0.002003-4_all.deb ... 59s Unpacking libmoox-typetiny-perl (0.002003-4) ... 59s Selecting previously unselected package libpath-tiny-perl. 59s Preparing to unpack .../161-libpath-tiny-perl_0.148-1_all.deb ... 59s Unpacking libpath-tiny-perl (0.148-1) ... 59s Selecting previously unselected package libref-util-perl. 59s Preparing to unpack .../162-libref-util-perl_0.204-2_all.deb ... 59s Unpacking libref-util-perl (0.204-2) ... 59s Selecting previously unselected package libsafe-isa-perl. 59s Preparing to unpack .../163-libsafe-isa-perl_1.000010-1_all.deb ... 59s Unpacking libsafe-isa-perl (1.000010-1) ... 59s Selecting previously unselected package libstrictures-perl. 59s Preparing to unpack .../164-libstrictures-perl_2.000006-1_all.deb ... 59s Unpacking libstrictures-perl (2.000006-1) ... 59s Selecting previously unselected package libjson-schema-modern-perl. 59s Preparing to unpack .../165-libjson-schema-modern-perl_0.611-1_all.deb ... 59s Unpacking libjson-schema-modern-perl (0.611-1) ... 59s Selecting previously unselected package libmodule-build-tiny-perl. 59s Preparing to unpack .../166-libmodule-build-tiny-perl_0.051-1_all.deb ... 59s Unpacking libmodule-build-tiny-perl (0.051-1) ... 59s Selecting previously unselected package libnet-idn-encode-perl. 59s Preparing to unpack .../167-libnet-idn-encode-perl_2.500-5build1_amd64.deb ... 59s Unpacking libnet-idn-encode-perl (2.500-5build1) ... 59s Selecting previously unselected package libpadwalker-perl. 59s Preparing to unpack .../168-libpadwalker-perl_2.5-1build7_amd64.deb ... 59s Unpacking libpadwalker-perl (2.5-1build7) ... 59s Selecting previously unselected package libref-util-xs-perl. 59s Preparing to unpack .../169-libref-util-xs-perl_0.117-2build5_amd64.deb ... 59s Unpacking libref-util-xs-perl (0.117-2build5) ... 59s Selecting previously unselected package libscope-guard-perl. 59s Preparing to unpack .../170-libscope-guard-perl_0.21-2_all.deb ... 59s Unpacking libscope-guard-perl (0.21-2) ... 59s Selecting previously unselected package libsereal-decoder-perl. 59s Preparing to unpack .../171-libsereal-decoder-perl_5.004+ds-1build5_amd64.deb ... 59s Unpacking libsereal-decoder-perl (5.004+ds-1build5) ... 59s Selecting previously unselected package libsereal-encoder-perl. 59s Preparing to unpack .../172-libsereal-encoder-perl_5.004+ds-1build4_amd64.deb ... 59s Unpacking libsereal-encoder-perl (5.004+ds-1build4) ... 59s Selecting previously unselected package libsereal-perl. 59s Preparing to unpack .../173-libsereal-perl_5.004-1_all.deb ... 59s Unpacking libsereal-perl (5.004-1) ... 59s Selecting previously unselected package libstdc++-11-dev:i386. 59s Preparing to unpack .../174-libstdc++-11-dev_11.5.0-7ubuntu1_i386.deb ... 59s Unpacking libstdc++-11-dev:i386 (11.5.0-7ubuntu1) ... 59s Selecting previously unselected package libtest-deep-perl. 59s Preparing to unpack .../175-libtest-deep-perl_1.205-1_all.deb ... 59s Unpacking libtest-deep-perl (1.205-1) ... 59s Selecting previously unselected package libtest-deep-unorderedpairs-perl. 59s Preparing to unpack .../176-libtest-deep-unorderedpairs-perl_0.006-3_all.deb ... 59s Unpacking libtest-deep-unorderedpairs-perl (0.006-3) ... 59s Selecting previously unselected package libtest-fatal-perl. 59s Preparing to unpack .../177-libtest-fatal-perl_0.017-2_all.deb ... 59s Unpacking libtest-fatal-perl (0.017-2) ... 59s Selecting previously unselected package libtest-file-sharedir-perl. 59s Preparing to unpack .../178-libtest-file-sharedir-perl_1.001002-2_all.deb ... 59s Unpacking libtest-file-sharedir-perl (1.001002-2) ... 59s Selecting previously unselected package libtest2-suite-perl. 59s Preparing to unpack .../179-libtest2-suite-perl_0.000163-1_all.deb ... 59s Unpacking libtest2-suite-perl (0.000163-1) ... 59s Selecting previously unselected package libtest-json-schema-acceptance-perl. 59s Preparing to unpack .../180-libtest-json-schema-acceptance-perl_1.029-1_all.deb ... 59s Unpacking libtest-json-schema-acceptance-perl (1.029-1) ... 59s Selecting previously unselected package libtest-memory-cycle-perl. 59s Preparing to unpack .../181-libtest-memory-cycle-perl_1.06-2_all.deb ... 59s Unpacking libtest-memory-cycle-perl (1.06-2) ... 59s Selecting previously unselected package libtest-needs-perl. 59s Preparing to unpack .../182-libtest-needs-perl_0.002010-1_all.deb ... 59s Unpacking libtest-needs-perl (0.002010-1) ... 59s Selecting previously unselected package libtest-warnings-perl. 59s Preparing to unpack .../183-libtest-warnings-perl_0.038-1_all.deb ... 59s Unpacking libtest-warnings-perl (0.038-1) ... 59s Selecting previously unselected package libtest-without-module-perl. 59s Preparing to unpack .../184-libtest-without-module-perl_0.23-1_all.deb ... 59s Unpacking libtest-without-module-perl (0.23-1) ... 59s Selecting previously unselected package libtime-moment-perl. 59s Preparing to unpack .../185-libtime-moment-perl_0.44-2build5_amd64.deb ... 59s Unpacking libtime-moment-perl (0.44-2build5) ... 59s Selecting previously unselected package libtype-tiny-xs-perl:amd64. 59s Preparing to unpack .../186-libtype-tiny-xs-perl_0.025-2build1_amd64.deb ... 59s Unpacking libtype-tiny-xs-perl:amd64 (0.025-2build1) ... 59s Selecting previously unselected package pkg-perl-autopkgtest. 59s Preparing to unpack .../187-pkg-perl-autopkgtest_0.82_all.deb ... 59s Unpacking pkg-perl-autopkgtest (0.82) ... 59s Setting up javascript-common (12+nmu1) ... 59s Setting up gcc-11-base:i386 (11.5.0-7ubuntu1) ... 59s Setting up libdevel-cycle-perl (1.12-2) ... 59s Setting up libextutils-config-perl (0.010-1) ... 59s Setting up libsafe-isa-perl (1.000010-1) ... 59s Setting up libextutils-helpers-perl (0.028-1) ... 59s Setting up libclass-inspector-perl (1.36-3) ... 59s Setting up libtest-without-module-perl (0.23-1) ... 59s Setting up libdynaloader-functions-perl (0.004-2) ... 59s Setting up libtest-deep-perl (1.205-1) ... 59s Setting up libclass-method-modifiers-perl (2.15-1) ... 59s Setting up libref-util-xs-perl (0.117-2build5) ... 59s Setting up libjs-popper.js (1.16.1+ds-6) ... 59s Setting up libnet-idn-encode-perl (2.500-5build1) ... 59s Setting up libclone-perl:amd64 (0.47-1) ... 59s Setting up libarchive-zip-perl (1.68-1) ... 59s Setting up libsub-identify-perl (0.14-3build4) ... 59s Setting up libcpanel-json-xs-perl:amd64 (4.39-2) ... 59s Setting up libextutils-installpaths-perl (0.014-1) ... 59s Setting up libio-stringy-perl (2.113-2) ... 59s Setting up binutils-i686-linux-gnu (2.45-8ubuntu1) ... 59s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 59s Setting up libtry-tiny-perl (0.32-1) ... 59s Setting up libtest-warnings-perl (0.038-1) ... 59s Setting up libtest-fatal-perl (0.017-2) ... 59s Setting up libextutils-hascompiler-perl (0.025-1) ... 59s Setting up linux-libc-dev:i386 (6.17.0-5.5) ... 59s Setting up m4 (1.4.19-8) ... 59s Setting up libclass-singleton-perl (1.6-2) ... 59s Setting up libtime-moment-perl (0.44-2build5) ... 59s Setting up libpadwalker-perl (2.5-1build7) ... 59s Setting up libcrypt1:i386 (1:4.4.38-1build1) ... 59s Setting up libcpan-requirements-dynamic-perl (0.002-1) ... 59s Setting up libxstring-perl:amd64 (0.005-2build4) ... 59s Setting up libgomp1:amd64 (15.2.0-5ubuntu1) ... 59s Setting up libgomp1:i386 (15.2.0-5ubuntu1) ... 59s Setting up libsereal-encoder-perl (5.004+ds-1build4) ... 59s Setting up libsub-install-perl (0.929-1) ... 59s Setting up libtest2-suite-perl (0.000163-1) ... 59s Setting up libasan6:i386 (11.5.0-7ubuntu1) ... 59s Setting up libtest-needs-perl (0.002010-1) ... 59s Setting up libscope-guard-perl (0.21-2) ... 59s Setting up libfile-copy-recursive-perl (0.45-4) ... 59s Setting up liberror-perl (0.17030-1) ... 59s Setting up libautovivification-perl:amd64 (0.18-2build5) ... 59s Setting up libtest-memory-cycle-perl (1.06-2) ... 59s Setting up linux-libc-dev-i386-cross (6.17.0-4.4cross1) ... 59s Setting up autotools-dev (20240727.1) ... 59s Setting up libclass-data-inheritable-perl (0.10-1) ... 59s Setting up libalgorithm-c3-perl (0.11-2) ... 59s Setting up libclass-tiny-perl (1.008-2) ... 59s Setting up libtest-deep-unorderedpairs-perl (0.006-3) ... 59s Setting up libref-util-perl (0.204-2) ... 59s Setting up libnet-domain-tld-perl (1.75-4) ... 59s Setting up libquadmath0:amd64 (15.2.0-5ubuntu1) ... 59s Setting up libquadmath0:i386 (15.2.0-5ubuntu1) ... 59s Setting up libmpc3:amd64 (1.3.1-1build3) ... 59s Setting up libatomic1:i386 (15.2.0-5ubuntu1) ... 59s Setting up gcc-15-i686-linux-gnu-base:amd64 (15.2.0-7ubuntu1cross1) ... 59s Setting up libvariable-magic-perl (0.64-1build1) ... 59s Setting up autopoint (0.23.1-2build2) ... 59s Setting up libb-hooks-op-check-perl:amd64 (0.22-3build2) ... 59s Setting up libparams-util-perl (1.102-3build1) ... 59s Setting up autoconf (2.72-3.1ubuntu1) ... 59s Setting up libsub-exporter-progressive-perl (0.001013-3) ... 59s Setting up libubsan1:amd64 (15.2.0-5ubuntu1) ... 59s Setting up libsub-name-perl:amd64 (0.28-1) ... 59s Setting up libtype-tiny-xs-perl:amd64 (0.025-2build1) ... 59s Setting up dwz (0.16-2) ... 59s Setting up libdata-validate-domain-perl (0.15-1) ... 59s Setting up libcpan-meta-check-perl (0.018-1) ... 59s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 59s Setting up libfile-chdir-perl (0.1008-1.2) ... 59s Setting up node-popper2 (2.11.2-9) ... 59s Setting up libhwasan0:amd64 (15.2.0-5ubuntu1) ... 59s Setting up libcrypt-dev:i386 (1:4.4.38-1build1) ... 59s Setting up libpath-tiny-perl (0.148-1) ... 59s Setting up libasan8:amd64 (15.2.0-5ubuntu1) ... 59s Setting up libjson-perl (4.10000-1) ... 59s Setting up librole-tiny-perl (2.002004-1) ... 59s Setting up debugedit (1:5.2-3) ... 59s Setting up libc6-i386-cross (2.42-0ubuntu3cross1) ... 59s Setting up libfile-sharedir-perl (1.118-3) ... 59s Setting up libc6-dev:i386 (2.42-0ubuntu3) ... 59s Setting up git-man (1:2.51.0-1ubuntu1) ... 59s Setting up libstrictures-perl (2.000006-1) ... 59s Setting up libsub-quote-perl (2.006008-1ubuntu1) ... 59s Setting up libdevel-stacktrace-perl (2.0500-1) ... 59s Setting up libclass-xsaccessor-perl (1.19-4build6) ... 59s Setting up libsort-versions-perl (1.62-3) ... 59s Setting up libtsan2:amd64 (15.2.0-5ubuntu1) ... 59s Setting up libexporter-tiny-perl (1.006002-1) ... 59s Setting up libisl23:amd64 (0.27-1) ... 59s Setting up gcc-15-cross-base (15.2.0-7ubuntu1cross1) ... 59s Setting up libjs-bootstrap5 (5.3.5+dfsg-4) ... 59s Setting up libquadmath0-i386-cross (15.2.0-7ubuntu1cross1) ... 59s Setting up libsereal-decoder-perl (5.004+ds-1build5) ... 59s Setting up libcc1-0:amd64 (15.2.0-5ubuntu1) ... 59s Setting up libstdc++6:i386 (15.2.0-5ubuntu1) ... 59s Setting up liblsan0:amd64 (15.2.0-5ubuntu1) ... 59s Setting up dctrl-tools (2.24-3build3) ... 59s Setting up libitm1:amd64 (15.2.0-5ubuntu1) ... 59s Setting up libitm1:i386 (15.2.0-5ubuntu1) ... 59s Setting up autodep8 (0.30) ... 59s Setting up libemail-address-xs-perl (1.05-1build5) ... 59s Setting up automake (1:1.17-4ubuntu1) ... 59s update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode 59s Setting up libmodule-build-tiny-perl (0.051-1) ... 59s Setting up libfile-stripnondeterminism-perl (1.14.2-1) ... 59s Setting up gettext (0.23.1-2build2) ... 59s Setting up libgcc-15-dev:amd64 (15.2.0-5ubuntu1) ... 59s Setting up libatomic1-i386-cross (15.2.0-7ubuntu1cross1) ... 59s Setting up libmojolicious-perl (9.39+dfsg-1) ... 59s Setting up libtype-tiny-perl (2.004000-2) ... 59s Setting up cpp-15-i686-linux-gnu (15.2.0-7ubuntu1cross1) ... 59s Setting up libsereal-perl (5.004-1) ... 59s Setting up libgomp1-i386-cross (15.2.0-7ubuntu1cross1) ... 59s Setting up libexception-class-perl (1.45-1) ... 59s Setting up libc6-dev-i386-cross (2.42-0ubuntu3cross1) ... 59s Setting up libclass-c3-perl (0.35-2) ... 59s Setting up cpp-15-x86-64-linux-gnu (15.2.0-5ubuntu1) ... 59s Setting up libdevel-callchecker-perl:amd64 (0.009-2) ... 59s Setting up intltool-debian (0.35.0+20060710.6) ... 59s Setting up gcc-15-x86-64-linux-gnu (15.2.0-5ubuntu1) ... 59s Setting up libgcc-s1-i386-cross (15.2.0-7ubuntu1cross1) ... 59s Setting up libxs-parse-keyword-perl (0.48-2) ... 59s Setting up libstdc++-15-dev:amd64 (15.2.0-5ubuntu1) ... 59s Setting up libtest-file-sharedir-perl (1.001002-2) ... 59s Setting up libitm1-i386-cross (15.2.0-7ubuntu1cross1) ... 59s Setting up libdata-optlist-perl (0.114-1) ... 59s Setting up git (1:2.51.0-1ubuntu1) ... 59s Setting up pkg-perl-autopkgtest (0.82) ... 59s Setting up libubsan1:i386 (15.2.0-5ubuntu1) ... 59s Setting up dh-strip-nondeterminism (1.14.2-1) ... 59s Setting up libsyntax-keyword-try-perl (0.30-1) ... 59s Setting up libgcc-11-dev:i386 (11.5.0-7ubuntu1) ... 59s Setting up cpp-15 (15.2.0-5ubuntu1) ... 59s Setting up libgit-wrapper-perl (0.048-2) ... 59s Setting up cpp-i686-linux-gnu (4:15.2.0-4ubuntu1) ... 59s Setting up libmro-compat-perl (0.15-2) ... 59s Setting up libsub-exporter-perl (0.990-1) ... 59s Setting up libeval-closure-perl (0.14-3) ... 59s Setting up cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 59s Setting up g++-15-x86-64-linux-gnu (15.2.0-5ubuntu1) ... 59s Setting up libparams-validationcompiler-perl (0.31-1) ... 59s Setting up libfeature-compat-try-perl (0.05-1) ... 59s Setting up gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 59s Setting up po-debconf (1.0.21+nmu1) ... 59s Setting up libparams-classify-perl:amd64 (0.015-2build6) ... 59s Setting up libasan8-i386-cross (15.2.0-7ubuntu1cross1) ... 59s Setting up libstdc++6-i386-cross (15.2.0-7ubuntu1cross1) ... 59s Setting up gcc-15 (15.2.0-5ubuntu1) ... 59s Setting up libmodule-runtime-perl (0.018-1) ... 59s Setting up libstdc++-11-dev:i386 (11.5.0-7ubuntu1) ... 59s Setting up cpp (4:15.2.0-4ubuntu1) ... 59s Setting up g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 59s Setting up g++-15 (15.2.0-5ubuntu1) ... 59s Setting up libtool (2.5.4-4build1) ... 59s Setting up libmodule-implementation-perl (0.09-2) ... 59s Setting up libpackage-stash-perl (0.40-1) ... 59s Setting up libimport-into-perl (1.002005-2) ... 59s Setting up libmoo-perl (2.005005-1) ... 59s Setting up libubsan1-i386-cross (15.2.0-7ubuntu1cross1) ... 59s Setting up gcc (4:15.2.0-4ubuntu1) ... 59s Setting up dh-autoreconf (21) ... 59s Setting up libspecio-perl (0.50-1) ... 59s Setting up libgcc-15-dev-i386-cross (15.2.0-7ubuntu1cross1) ... 59s Setting up libstdc++-15-dev-i386-cross (15.2.0-7ubuntu1cross1) ... 59s Setting up g++ (4:15.2.0-4ubuntu1) ... 59s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 59s Setting up build-essential (12.12ubuntu1) ... 59s Setting up libmoox-typetiny-perl (0.002003-4) ... 59s Setting up libparams-validate-perl:amd64 (1.31-2build4) ... 59s Setting up libb-hooks-endofscope-perl (0.28-2) ... 59s Setting up gcc-15-i686-linux-gnu (15.2.0-7ubuntu1cross1) ... 59s Setting up debhelper (13.24.2ubuntu1) ... 59s Setting up g++-15-i686-linux-gnu (15.2.0-7ubuntu1cross1) ... 59s Setting up libnamespace-clean-perl (0.27-2) ... 59s Setting up libbuiltin-compat-perl (0.003003-2) ... 59s Setting up libgetopt-long-descriptive-perl (0.116-2) ... 59s Setting up gcc-i686-linux-gnu (4:15.2.0-4ubuntu1) ... 59s Setting up libtest-json-schema-acceptance-perl (1.029-1) ... 59s Setting up libnamespace-autoclean-perl (0.31-1) ... 59s Setting up libdatetime-locale-perl (1:1.41-1) ... 59s Setting up g++-i686-linux-gnu (4:15.2.0-4ubuntu1) ... 59s Setting up libdatetime-timezone-perl (1:2.65-1+2025b) ... 59s Setting up crossbuild-essential-i386 (12.12ubuntu1) ... 59s Setting up libjson-schema-modern-perl (0.611-1) ... 59s Setting up libdatetime-perl (2:1.65-1build3) ... 59s Setting up libdatetime-format-rfc3339-perl (1.10.0-1) ... 59s Processing triggers for install-info (7.1.1-1ubuntu1) ... 59s Processing triggers for libc-bin (2.42-0ubuntu3) ... 59s Processing triggers for man-db (2.13.1-1) ... 62s autopkgtest [20:30:40]: test environment configured for cross building 62s autopkgtest [20:30:40]: test autodep8-perl-build-deps: /usr/share/pkg-perl-autopkgtest/runner build-deps 62s autopkgtest [20:30:40]: test autodep8-perl-build-deps: [----------------------- 62s t/00-report-prereqs.t ................... 62s 1..1 62s # 62s # Versions for all modules listed in static metadata (including optional ones): 62s # 62s # === Configure Requires === 62s # 62s # Module Want Have 62s # ------------------- ----- -------- 62s # Module::Build::Tiny 0.034 0.051 62s # perl 5.020 5.040001 62s # 62s # === Test Requires === 62s # 62s # Module Want Have 62s # ------------------------------ -------- -------- 62s # CPAN::Meta::Check 0.011 0.018 62s # CPAN::Meta::Requirements any 2.143 62s # Data::Dumper any 2.189 62s # File::Spec any 3.91 62s # Math::BigInt 1.999701 2.003002 62s # Module::Metadata any 1.000038 62s # Term::ANSIColor any 5.01 62s # Test2::API any 1.302199 62s # Test::Deep any 1.205 62s # Test::Deep::UnorderedPairs any 0.006 62s # Test::Fatal any 0.017 62s # Test::File::ShareDir any 1.001002 62s # Test::JSON::Schema::Acceptance 1.021 1.029 62s # Test::Memory::Cycle any 1.06 62s # Test::More 0.96 1.302199 62s # Test::Needs any 0.002010 62s # Test::Warnings any 0.038 62s # Test::Without::Module 0.19 0.23 62s # lib any 0.65 62s # perl v5.20.0 5.040001 62s # utf8 any 1.25 62s # 62s # === Test Recommends === 62s # 62s # Module Want Have 62s # ---------- -------- -------- 62s # CPAN::Meta 2.120900 2.150010 62s # 62s # === Runtime Requires === 62s # 62s # Module Want Have 62s # ------------------------- -------- -------- 62s # B any 1.89 62s # Carp any 1.54 62s # Cpanel::JSON::XS 4.38 4.39 62s # Digest::MD5 any 2.58_01 62s # Exporter any 5.78 62s # Feature::Compat::Try any 0.05 62s # File::ShareDir any 1.118 62s # Getopt::Long::Descriptive any 0.116 62s # JSON::PP 4.11 4.16 62s # List::Util 1.55 1.63 62s # MIME::Base64 any 3.16_01 62s # Math::BigFloat any 2.003002 62s # Math::BigInt 1.999701 2.003002 62s # Mojo::JSON any undef 62s # Mojo::JSON::Pointer any undef 62s # Mojo::Message::Response any undef 62s # Mojo::URL any undef 62s # Mojolicious 7.87 9.39 62s # Moo any 2.005005 62s # Moo::Role any 2.005005 62s # MooX::TypeTiny 0.002002 0.002003 62s # Path::Tiny any 0.148 62s # Ref::Util 0.100 0.204 62s # Safe::Isa 1.000008 1.000010 62s # Scalar::Util any 1.63 62s # Storable any 3.32 62s # Sub::Install any 0.929 62s # Types::Common::Numeric any 2.004000 62s # Types::Standard 1.016003 2.004000 62s # autovivification any 0.18 62s # builtin::compat 0.003003 0.003003 62s # constant any 1.33 62s # experimental 0.026 0.032 62s # feature any 1.89 62s # if any 0.0610 62s # namespace::clean any 0.27 62s # open any 1.13 62s # overload any 1.37 62s # perl v5.20.0 5.040001 62s # stable 0.031 0.033 62s # strict any 1.13 62s # strictures 2 2.000006 62s # warnings any 1.70 62s # 62s # === Runtime Suggests === 62s # 62s # Module Want Have 62s # ------------------------- ---- ------- 62s # Class::XSAccessor any 1.19 62s # Data::Validate::Domain 0.13 0.15 62s # DateTime::Format::RFC3339 any v1.10.0 62s # Email::Address::XS 1.04 1.05 62s # Net::IDN::Encode any 2.500 62s # Ref::Util::XS any 0.117 62s # Sereal any 5.004 62s # Time::Moment any 0.44 62s # Type::Tiny::XS any 0.025 62s # 62s # === Other Modules === 62s # 62s # Module Have 62s # ----------------- -------- 62s # Cpanel::JSON::XS 4.39 62s # Encode 3.21 62s # File::Temp 0.2311 62s # JSON::PP 4.16 62s # JSON::XS missing 62s # Math::BigFloat 2.003002 62s # Math::BigInt 2.003002 62s # Module::Runtime 0.018 62s # Mojolicious 9.39 62s # Sereal::Decoder 5.004 62s # Sereal::Encoder 5.004 62s # Sub::Name 0.28 62s # YAML missing 62s # autodie 2.37 62s # builtin 0.014 62s # builtin::Backport missing 62s # 62s ok 1 - Reported prereqs 62s ok 63s t/add-schema.t .......................... 63s # Subtest: evaluate a document 63s ok 1 - evaluate a Document object 63s ok 2 - resource index from the document is copied to the main object 63s ok 3 - evaluate a Document object again without error 63s 1..3 63s ok 1 - evaluate a document 63s # Subtest: evaluate a uri 63s ok 1 - evaluate with a uri that is not yet loaded 63s ok 2 - the metaschema is now loaded and its resources are indexed 63s ok 3 - evaluate against the metaschema again 63s ok 4 - evaluate against the a subschema of the metaschema 63s ok 5 - evaluate against the a fragment of the metaschema that does not exist 63s ok 6 - evaluate against the a plain-name fragment of the metaschema that does not exist 63s 1..6 63s ok 2 - evaluate a uri 63s # Subtest: add a uri resource 63s ok 1 - ->get in scalar context on a URI to the head of a document 63s ok 2 - get() did not return a reference to the original data 63s ok 3 - ->get in list context on a URI to the head of a document 63s ok 4 - ->get in scalar context on a URI to inside of a document 63s ok 5 - ->get in list context on a URI to inside of a document 63s 1..5 63s ok 3 - add a uri resource 63s # Subtest: add a schema associated with a uri 63s ok 1 - cannot use a uri with a fragment 63s ok 2 - added the schema data with an associated uri; the document does not see the overridden uri 63s ok 3 - can now evaluate using a uri to a subschema of a resource we loaded earlier 63s ok 4 - can also evaluate using a non-canonical uri 63s ok 5 - can add the same document and associate it with another schema 63s ok 6 - can add the same document twice, using deprecated interface 63s ok 7 - warned when using deprecated form of add_schema 63s ok 8 - can add the same document again with the proper interface 63s ok 9 - now the document is available as all three uris, with the same canonical_uri 63s 1..9 63s ok 4 - add a schema associated with a uri 63s # Subtest: multiple anonymous schemas 63s ok 1 - evaluate an anonymous schema 63s ok 2 - one resource is indexed 63s ok 3 - evaluate another anonymous schema 63s ok 4 - still only one resource is indexed 63s 1..4 63s ok 5 - multiple anonymous schemas 63s # Subtest: add a document without associating it with a uri 63s ok 1 - added the document without an associated uri 63s ok 2 - document only added under its canonical uri 63s 1..2 63s ok 6 - add a document without associating it with a uri 63s # Subtest: add a schema without a uri 63s ok 1 - added the schema data without an associated uri 63s ok 2 - document only added under its canonical uri 63s 1..2 63s ok 7 - add a schema without a uri 63s # Subtest: $ref to non-canonical uri 63s ok 1 - errors use the canonical uri, not the uri used to evaluate against 63s ok 2 - non-canonical uri is not used to resolve inner $id keywords 63s ok 3 - the canonical uri is updated when use the canonical uri, not the uri used to evaluate against 63s ok 4 - canonical_uri is not always what was in the $ref, even when no local $id is present 63s ok 5 - canonical_uri fragment also needs to be adjusted 63s ok 6 - canonical_uri starts out containing a fragment and can be appended to during traversal 63s 1..6 63s ok 8 - $ref to non-canonical uri 63s # Subtest: register a document against multiple uris, with absolute root uri 63s ok 1 - identifiers stored for the document 63s ok 2 - resource index from the document is copied to the main object 63s ok 3 - add a secondary uri for the same document 63s ok 4 - secondary uri not also added to the document 63s ok 5 - cannot call add_schema with the same URI as for another schema 63s ok 6 - cannot reuse the same $id in another document 63s ok 7 - resource index remains unchanged after erroneous add_schema calls 63s ok 8 - adding the same schema content again is permitted 63s ok 9 - ->get in scalar context for a nonexistent resource returns undef 63s ok 10 - ->get in list context for a nonexistent resource returns empty list 63s 1..10 63s ok 9 - register a document against multiple uris, with absolute root uri 63s # Subtest: register a document against multiple uris, with relative root uri 63s ok 1 - identifiers stored for the document 63s ok 2 - resource index from the document is copied to the main object 63s ok 3 - add a secondary (absolute) uri for the same document 63s ok 4 - secondary uri not also added to the document 63s ok 5 - cannot call add_schema with the same URI as for another schema 63s ok 6 - cannot reuse the same $id in another document 63s ok 7 - resource index remains unchanged after erroneous add_schema calls 63s ok 8 - adding the same schema content again is permitted 63s 1..8 63s ok 10 - register a document against multiple uris, with relative root uri 63s # Subtest: register a document against multiple uris, with no root uri 63s ok 1 - identifiers stored for the document 63s ok 2 - resource index from the document is copied to the main object 63s ok 3 - add a secondary (absolute) uri for the same document 63s ok 4 - secondary uri not also added to the document 63s ok 5 - cannot call add_schema with the same URI as for another schema 63s ok 6 - cannot reuse the same $id in another document 63s ok 7 - resource index remains unchanged after erroneous add_schema calls 63s ok 8 - adding the same schema content again is permitted 63s 1..8 63s ok 11 - register a document against multiple uris, with no root uri 63s # Subtest: external resource with externally-supplied uri; main resource with multiple uris 63s ok 1 - all uris in result are correct, using secondary uri as the target 63s ok 2 - all uris in result are correct, using main uri as the target 63s 1..2 63s ok 12 - external resource with externally-supplied uri; main resource with multiple uris 63s # Subtest: document with no canonical URI, but assigned a URI through add_schema 63s ok 1 - evaluate a schema referencing a document given an ad-hoc uri 63s ok 2 - adding a uri to an existing document does not change its canonical uri 63s 1..2 63s ok 13 - document with no canonical URI, but assigned a URI through add_schema 63s 1..13 63s ok 66s t/additional-tests-draft2019-09.t ....... 66s # 66s # AUTHOR_TESTING: 66s # AUTOMATED_TESTING: 1 66s # EXTENDED_TESTING: 66s # NO_TODO: 66s # TEST_DIR: 66s # NO_SHORT_CIRCUIT: 66s # 66s # running tests in /tmp/autopkgtest.kEyFY6/autopkgtest_tmp/smokef6VDtA/t/additional-tests-draft2019-09 against draft2019-09... 66s # 66s ok 1 - anchor.json: "non-schema object containing an $anchor property" - "skip traversing definition for a valid result" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 2 - anchor.json: "non-schema object containing an $anchor property" - "const at const_not_anchor does not match" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else/$ref/const" 66s # }, 66s # { 66s # "error": "subschema is not valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else/$ref/const" 66s # }, 66s # { 66s # "error": "subschema is not valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 3 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "properties evaluated from allOf" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 4 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "extra property" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/bar", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/bar", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 5 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "properties evaluated from additionalProperties" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 6 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "extra property" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/bar", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/bar", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 7 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "properties evaluated from allOf, but unevaluated is buried" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/foo", 66s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "no subschemas are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/foo", 66s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "no subschemas are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 8 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "no properties" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 9 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "properties evaluated from additionalProperties, but unevaluated is buried" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/foo", 66s # "keywordLocation": "/allOf/0/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/allOf/0/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "subschema 0 is not valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/allOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/foo", 66s # "keywordLocation": "/allOf/0/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/allOf/0/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "subschema 0 is not valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/allOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 10 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "no properties" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 11 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 12 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/not" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/not" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 13 - badRef.json: "good references in schemas" - "this data is never used" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 14 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "$ref value is not a valid URI reference", 66s # "instanceLocation": "", 66s # "keywordLocation": "/then/$ref" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "$ref value is not a valid URI reference", 66s # "instanceLocation": "", 66s # "keywordLocation": "/then/$ref" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 15 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "$ref value is not a valid URI reference", 66s # "instanceLocation": "", 66s # "keywordLocation": "/then/$ref" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "$ref value is not a valid URI reference", 66s # "instanceLocation": "", 66s # "keywordLocation": "/then/$ref" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 16 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 17 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 66s # "error": "got string, not integer", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf/0/type" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 66s # "error": "got string, not integer", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf/1/type" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf/2/const" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf/3/enum" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 66s # "error": "no subschemas are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 66s # "error": "got string, not integer", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf/0/type" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 66s # "error": "got string, not integer", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf/1/type" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf/2/const" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf/3/enum" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 66s # "error": "no subschemas are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/anyOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 18 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 19 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 20 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid date-time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid date-time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 21 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid date-time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid date-time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 22 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid date string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid date string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 23 - format-duration.json: "validation of duration strings" - "years and months can appear without days" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 24 - format-duration.json: "validation of duration strings" - "months and days can appear without years" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 25 - format-duration.json: "validation of duration strings" - "hours and minutes can appear without seconds" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 26 - format-duration.json: "validation of duration strings" - "minutes and seconds can appear without hour" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 27 - format-duration.json: "validation of duration strings" - "elements may be omitted if their value is zero" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 28 - format-duration.json: "validation of duration strings" - "half a year duration, with full stop decimal point" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 29 - format-duration.json: "validation of duration strings" - "half a year duration, with comma decimal point" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 30 - format-duration.json: "validation of duration strings" - "only one unit can have a non-integer quantity" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid duration string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid duration string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 31 - format-duration.json: "validation of duration strings" - "only the smallest unit can have a non-integer quantity" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid duration string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid duration string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 32 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv4 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv4 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 33 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv4 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv4 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 34 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 35 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv4 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv4 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 36 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 37 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 38 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 39 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 40 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 41 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 42 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 43 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 44 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 45 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 46 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 47 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 48 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv6 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv6 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 49 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv6 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv6 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 50 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv6 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv6 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 51 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv6 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv6 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 52 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv6 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid ipv6 string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 53 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 54 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 55 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 56 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 57 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid relative-json-pointer string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid relative-json-pointer string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 58 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid relative-json-pointer string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid relative-json-pointer string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 59 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid relative-json-pointer string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid relative-json-pointer string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 60 - format-time.json: "validation of time strings" - "valid leap second, Zulu" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 61 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 62 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 63 - format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 64 - format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 65 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 66 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 67 - format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 68 - format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 69 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 70 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 71 - format-time.json: "validation of time strings" - "no time offset" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 72 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "not a valid time string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 73 - formats.json: "format validation after a $ref" - "invalid duration" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "#/$defs/my_format/format", 66s # "error": "not a valid duration string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$ref/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "#/$defs/my_format/format", 66s # "error": "not a valid duration string", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$ref/format" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 74 - formats.json: "format validation after a $ref" - "valid duration" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 75 - formats.json: "format validation after an $id" - "invalid duration" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 66s # "error": "not a valid duration string", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/allOf/0/format" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "bloop#/allOf", 66s # "error": "subschema 0 is not valid", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/allOf" 66s # }, 66s # { 66s # "error": "subschema is not valid against all items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 66s # "error": "not a valid duration string", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/allOf/0/format" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "bloop#/allOf", 66s # "error": "subschema 0 is not valid", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/allOf" 66s # }, 66s # { 66s # "error": "subschema is not valid against all items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 76 - formats.json: "format validation after an $id" - "valid duration" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s # 66s ok 77 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 78 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else/$ref/const" 66s # }, 66s # { 66s # "error": "subschema is not valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else/$ref/const" 66s # }, 66s # { 66s # "error": "subschema is not valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 79 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "$id cannot be empty", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$id" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "$id cannot be empty", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$id" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 80 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "$id cannot be empty", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$id" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "$id cannot be empty", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$id" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 81 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "$id cannot be empty", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$id" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "$id cannot be empty", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$id" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 82 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "$id cannot be empty", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$id" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "$id cannot be empty", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$id" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 83 - integers.json: "type checks" - "beyond int64 lower boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 84 - integers.json: "type checks" - "int64 lower boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 85 - integers.json: "type checks" - "beyond int32 lower boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 86 - integers.json: "type checks" - "int32 lower boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 87 - integers.json: "type checks" - "zero" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 88 - integers.json: "type checks" - "int32 upper boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 89 - integers.json: "type checks" - "beyond int32 upper boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 90 - integers.json: "type checks" - "upper int64 boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 91 - integers.json: "type checks" - "beyond int64 upper boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 92 - integers.json: "int32 range checks" - "beyond lower boundary" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than -2147483648", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than -2147483648", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 93 - integers.json: "int32 range checks" - "lower boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 94 - integers.json: "int32 range checks" - "zero" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 95 - integers.json: "int32 range checks" - "upper boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 96 - integers.json: "int32 range checks" - "beyond upper boundary" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2147483647", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2147483647", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 97 - integers.json: "int64 range checks" - "beyond lower boundary" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than -9223372036854775808", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than -9223372036854775808", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 98 - integers.json: "int64 range checks" - "lower boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 99 - integers.json: "int64 range checks" - "zero" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 100 - integers.json: "int64 range checks" - "upper boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 101 - integers.json: "int64 range checks" - "beyond upper boundary" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 9223372036854775807", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 9223372036854775807", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 102 - integers.json: "equality checks" - "beyond int64 lower boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 103 - integers.json: "equality checks" - "int64 lower boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 104 - integers.json: "equality checks" - "beyond int32 lower boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 105 - integers.json: "equality checks" - "int32 lower boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 106 - integers.json: "equality checks" - "zero" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 107 - integers.json: "equality checks" - "one" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/enum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/enum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 108 - integers.json: "equality checks" - "int32 upper boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 109 - integers.json: "equality checks" - "beyond int32 upper boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 110 - integers.json: "equality checks" - "int64 upper boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 111 - integers.json: "equality checks" - "beyond int64 upper boundary" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s # 66s ok 112 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 113 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 114 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 115 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 116 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 117 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 118 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 119 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 120 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 121 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 122 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 123 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 124 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 125 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 126 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 127 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 128 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 129 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 130 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 131 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 132 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 133 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 134 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 135 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 136 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 137 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 138 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 139 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 140 - keyword-independence.json: "items + maximum" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 141 - keyword-independence.json: "items + maximum" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 142 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 143 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 144 - keyword-independence.json: "items + minimum" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 145 - keyword-independence.json: "items + minimum" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 146 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 147 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 148 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 149 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 150 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 151 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 152 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 153 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 154 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 155 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 156 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 157 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 158 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 159 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 160 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 161 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 162 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 163 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 164 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 165 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 166 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 167 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 168 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 169 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 170 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 171 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 172 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 173 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 174 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 175 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 176 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 177 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 178 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 179 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 180 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 181 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 182 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 183 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 184 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 185 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 186 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 187 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 188 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 189 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 190 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 191 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 192 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 193 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 194 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 195 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 196 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 197 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 198 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 199 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 200 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 201 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 202 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 203 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 204 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 205 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 206 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 207 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 208 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 209 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 210 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 211 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 212 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 213 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 214 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 215 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 216 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 217 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 218 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 219 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 220 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 221 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 222 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 223 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 224 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 225 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 226 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 227 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 228 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 229 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 230 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 231 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 232 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 233 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 234 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 235 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 236 - keyword-independence.json: "contains + dependentRequired" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 237 - keyword-independence.json: "contains + dependentRequired" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 238 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 239 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 240 - keyword-independence.json: "contains + dependentSchemas" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 241 - keyword-independence.json: "contains + dependentSchemas" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 242 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 243 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 244 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 245 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 246 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 247 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 248 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 249 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 250 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 251 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 252 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 253 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 254 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 255 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 256 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 257 - keyword-independence.json: "contains + properties" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 258 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 259 - keyword-independence.json: "contains + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 260 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 261 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 262 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 263 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 264 - keyword-independence.json: "contains + required" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 265 - keyword-independence.json: "contains + required" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 266 - keyword-independence.json: "contains + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 267 - keyword-independence.json: "contains + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 268 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 269 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 270 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 271 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 272 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 273 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 274 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 275 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 276 - keyword-independence.json: "dependentRequired + items" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 277 - keyword-independence.json: "dependentRequired + items" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 278 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 279 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 280 - keyword-independence.json: "dependentSchemas + items" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 281 - keyword-independence.json: "dependentSchemas + items" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 282 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 283 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 284 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 285 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 286 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 287 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 288 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 289 - keyword-independence.json: "items + minProperties" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 290 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 291 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 292 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 293 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 294 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 295 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 296 - keyword-independence.json: "items + properties" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 297 - keyword-independence.json: "items + properties" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 298 - keyword-independence.json: "items + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 299 - keyword-independence.json: "items + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 300 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 301 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 302 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 303 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 304 - keyword-independence.json: "items + required" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 305 - keyword-independence.json: "items + required" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 306 - keyword-independence.json: "items + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 307 - keyword-independence.json: "items + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 308 - keyword-independence.json: "items + unevaluatedProperties" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 309 - keyword-independence.json: "items + unevaluatedProperties" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 310 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 311 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 312 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 313 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 314 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 315 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 316 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 317 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 318 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 319 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 320 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 321 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 322 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 323 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 324 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 325 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 326 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 327 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 328 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 329 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 330 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 331 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 332 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 333 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 334 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 335 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 336 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 337 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 338 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 339 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 340 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 341 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 342 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 343 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 344 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 345 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 346 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 347 - keyword-independence.json: "maxItems + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 348 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 349 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 350 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 351 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 352 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 353 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 354 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 355 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 356 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 357 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 358 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 359 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 360 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 361 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 362 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 363 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 364 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 365 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 366 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 367 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 368 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 369 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 370 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 371 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 372 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 373 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 374 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 375 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 376 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 377 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 378 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 379 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 380 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 381 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 382 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 383 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 384 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 385 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 386 - keyword-independence.json: "minItems + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 387 - keyword-independence.json: "minItems + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 388 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 389 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 390 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 391 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 392 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 393 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 394 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 395 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 396 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 397 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 398 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 399 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 400 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 401 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 402 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 403 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 404 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 405 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 406 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 407 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 408 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 409 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 410 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 411 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 412 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 413 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 414 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 415 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 416 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 417 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 418 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 419 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 420 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 421 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 422 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 423 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 424 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 425 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 426 - keyword-independence.json: "required + unevaluatedItems" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 427 - keyword-independence.json: "required + unevaluatedItems" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 428 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 429 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 430 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 431 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 432 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 433 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 434 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 435 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 436 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 437 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 438 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 439 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 440 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 441 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 442 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 443 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 444 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 445 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 446 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 447 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 448 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 449 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 450 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 451 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 452 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 453 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 454 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 455 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 456 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 457 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 458 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 459 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 460 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 461 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 462 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 463 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 464 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 465 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 466 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 467 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 468 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 469 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 470 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 471 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 472 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 473 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 474 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 475 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 476 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 477 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 478 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 479 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 480 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is not valid against any item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/contains" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 481 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 482 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 483 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 484 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 485 - keyword-independence.json: "items + maxLength" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 486 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 487 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 488 - keyword-independence.json: "items + minLength" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 489 - keyword-independence.json: "items + minLength" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 490 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 491 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 492 - keyword-independence.json: "items + pattern" - "array, items invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/items/0" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 493 - keyword-independence.json: "items + pattern" - "array, items valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 494 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 495 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 496 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 497 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 498 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 499 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 500 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 501 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 502 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 503 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 504 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has more than 1 item", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 505 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 506 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 507 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 508 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 509 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 510 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 511 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 512 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 513 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 514 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 515 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 516 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "array has fewer than 2 items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 517 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 518 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 519 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 520 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 521 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 522 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 523 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 524 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 525 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 526 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 527 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 528 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional item not permitted", 66s # "instanceLocation": "/0", 66s # "keywordLocation": "/unevaluatedItems" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 529 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 530 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 531 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 532 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 533 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 534 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 535 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 536 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 537 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 538 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 539 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 540 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "items at indices 0 and 1 are not unique", 66s # "instanceLocation": "", 66s # "keywordLocation": "/uniqueItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 541 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 542 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 543 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 544 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 545 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 546 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 547 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 548 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 549 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 550 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 551 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 552 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 553 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 554 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 555 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 556 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 557 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 558 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 559 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 560 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 561 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 562 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 563 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 564 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 565 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 566 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 567 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 568 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 569 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 570 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 571 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 572 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 573 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 574 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 575 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 576 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 577 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 578 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 579 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 580 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 581 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 582 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 583 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 584 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 585 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 586 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 587 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 588 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 589 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 590 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 591 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 592 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 593 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 594 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 595 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 596 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 597 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 598 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 599 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 600 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 601 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 602 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 603 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 604 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 605 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 606 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 607 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 608 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 609 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 610 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 611 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 612 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 613 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 614 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 615 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 616 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 617 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 618 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 619 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 620 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 621 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 622 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 623 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 624 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 625 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 626 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 627 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 628 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 629 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 630 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 631 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 632 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 633 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 634 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 635 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 636 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 637 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 638 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 639 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 640 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 641 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 642 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 643 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 644 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 645 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 646 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 647 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 648 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 649 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 650 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 651 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 652 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 653 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 654 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 655 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 656 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 657 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 658 - keyword-independence.json: "maximum + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 659 - keyword-independence.json: "maximum + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 660 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 661 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 662 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 663 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 664 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 665 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 666 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 667 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 668 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 669 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 670 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 671 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 672 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 673 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 674 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 675 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 676 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 677 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 678 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 679 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 680 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 681 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 682 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 683 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 684 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 685 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 686 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 687 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 688 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 689 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 690 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 691 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 692 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 693 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 694 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 695 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 696 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 697 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 698 - keyword-independence.json: "minimum + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 699 - keyword-independence.json: "minimum + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 700 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 701 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 702 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 703 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 704 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 705 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 706 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 707 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 708 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 709 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 710 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 711 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 712 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 713 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 714 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 715 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 716 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 717 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 718 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 719 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 720 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 721 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 722 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 723 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 724 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 725 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 726 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 727 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 728 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 729 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 730 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 731 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 732 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 733 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 734 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 735 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 736 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 737 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 738 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 739 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 740 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 741 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 742 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 743 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 744 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 745 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 746 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 747 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 748 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 749 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 750 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 751 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 752 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMaximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 753 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 754 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 755 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 756 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 757 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 758 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 759 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 760 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 761 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 762 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 763 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 764 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than or equal to 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/exclusiveMinimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 765 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 766 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 767 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 768 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 769 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 770 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 771 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 772 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 773 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 774 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 775 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 776 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 777 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 778 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 779 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 780 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 781 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 782 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 783 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 784 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 785 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 786 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 787 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 788 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minimum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 789 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 790 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 791 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 792 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 793 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 794 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 795 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 796 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 797 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 798 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 799 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 800 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/multipleOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 801 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 802 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 803 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 804 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 805 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 806 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 807 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 808 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 809 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 810 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 811 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 812 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/additionalProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 813 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 814 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 815 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 816 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 817 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 818 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 819 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 820 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 821 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 822 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 823 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 824 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: y", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentRequired" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 825 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 826 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 827 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 828 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 829 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 830 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 831 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 832 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 833 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 834 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 835 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 836 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas/x" 66s # }, 66s # { 66s # "error": "not all dependencies are satisfied", 66s # "instanceLocation": "", 66s # "keywordLocation": "/dependentSchemas" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 837 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 838 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 839 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 840 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 841 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 842 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 843 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 844 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 845 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 846 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 847 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 848 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has more than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 849 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 850 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 851 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 852 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 853 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 854 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 855 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 856 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 857 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 858 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 859 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 860 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object has fewer than 1 property", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 861 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 862 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 863 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 864 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 865 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 866 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 867 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 868 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 869 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 870 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 871 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 872 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/no", 66s # "keywordLocation": "/patternProperties/no" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 873 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 874 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 875 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 876 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 877 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 878 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 879 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 880 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 881 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 882 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 883 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 884 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/properties/x" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 885 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 886 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 887 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 888 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 889 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 890 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 891 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 892 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 893 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 894 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 895 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 896 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "subschema is false", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/propertyNames" 66s # }, 66s # { 66s # "error": "not all property names are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/propertyNames" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 897 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 898 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 899 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 900 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 901 - keyword-independence.json: "maxLength + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 902 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 903 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 904 - keyword-independence.json: "minLength + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 905 - keyword-independence.json: "minLength + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 906 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 907 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 908 - keyword-independence.json: "pattern + required" - "object, required invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "object is missing property: x", 66s # "instanceLocation": "", 66s # "keywordLocation": "/required" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 909 - keyword-independence.json: "pattern + required" - "object, required valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 910 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 911 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 912 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 913 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 914 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is greater than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/maxLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 915 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 916 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 917 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 918 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "length is less than 2", 66s # "instanceLocation": "", 66s # "keywordLocation": "/minLength" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 919 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 920 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "additional property not permitted", 66s # "instanceLocation": "/x", 66s # "keywordLocation": "/unevaluatedProperties" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 921 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 922 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "pattern does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/pattern" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 923 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s # 66s ok 924 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "/const_string", 66s # "keywordLocation": "/properties/const_string/const" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "/const_string", 66s # "keywordLocation": "/properties/const_string/const" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 925 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 926 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 927 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "/const_number", 66s # "keywordLocation": "/properties/const_number/const" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "/const_number", 66s # "keywordLocation": "/properties/const_number/const" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 928 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "/enum_string", 66s # "keywordLocation": "/properties/enum_string/enum" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "/enum_string", 66s # "keywordLocation": "/properties/enum_string/enum" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 929 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 930 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 931 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "/enum_number", 66s # "keywordLocation": "/properties/enum_number/enum" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "/enum_number", 66s # "keywordLocation": "/properties/enum_number/enum" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 932 - recursive-dynamic.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "numeric node" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 933 - recursive-dynamic.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "integer node" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "integerNode.json#/type", 66s # "error": "got number, not one of object, integer", 66s # "instanceLocation": "/november", 66s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else/$ref/additionalProperties" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "main.json#/else", 66s # "error": "subschema is not valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "integerNode.json#/type", 66s # "error": "got number, not one of object, integer", 66s # "instanceLocation": "/november", 66s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else/$ref/additionalProperties" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "main.json#/else", 66s # "error": "subschema is not valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/else" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 934 - recursive-dynamic.json: "$recursiveRef points to a boolean schema" - "follow $recursiveRef to a true schema" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 935 - recursive-dynamic.json: "$recursiveRef points to a boolean schema" - "follow $recursiveRef to a false schema" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "#/$defs/false", 66s # "error": "subschema is false", 66s # "instanceLocation": "/false", 66s # "keywordLocation": "/properties/false/$recursiveRef" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "#/$defs/false", 66s # "error": "subschema is false", 66s # "instanceLocation": "/false", 66s # "keywordLocation": "/properties/false/$recursiveRef" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 936 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is valid against first definition" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 937 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is invalid against first definition" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 66s # "error": "value is greater than 10", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$ref/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 66s # "error": "value is greater than 10", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$ref/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 938 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is valid against first definition" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 939 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is invalid against first definition" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 66s # "error": "value is greater than 10", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$ref/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 66s # "error": "value is greater than 10", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$ref/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 940 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with json pointers)" - "data is valid against innermost type check" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 941 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with json pointers)" - "data is invalid against innermost type check" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 66s # "error": "got string, not number", 66s # "instanceLocation": "", 66s # "keywordLocation": "/allOf/0/$ref/type" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 66s # "error": "got string, not number", 66s # "instanceLocation": "", 66s # "keywordLocation": "/allOf/0/oneOf/0/type" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf", 66s # "error": "no subschemas are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/allOf/0/oneOf" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 66s # "error": "subschema 0 is not valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/allOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 66s # "error": "got string, not number", 66s # "instanceLocation": "", 66s # "keywordLocation": "/allOf/0/$ref/type" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 66s # "error": "subschema 0 is not valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/allOf" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 942 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 943 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 66s # "error": "value is greater than 10", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$ref/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 66s # "error": "value is greater than 10", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$ref/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 944 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 945 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 66s # "error": "value is greater than 10", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$ref/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 66s # "error": "value is greater than 10", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$ref/maximum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 946 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/enum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value does not match", 66s # "instanceLocation": "", 66s # "keywordLocation": "/enum" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 947 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 948 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "$ref value is not a valid URI reference", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$defs/foo/$ref" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "$ref value is not a valid URI reference", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$defs/foo/$ref" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 949 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "$ref value is not a valid URI reference", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$defs/foo/$ref" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "$ref value is not a valid URI reference", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$defs/foo/$ref" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 950 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 951 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 66s # "error": "got string, not integer", 66s # "instanceLocation": "/list/0", 66s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 66s # "error": "subschema is not valid against all items", 66s # "instanceLocation": "/list", 66s # "keywordLocation": "/properties/list/$ref/items" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 66s # "error": "got string, not integer", 66s # "instanceLocation": "/list/0", 66s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 66s # "error": "subschema is not valid against all items", 66s # "instanceLocation": "/list", 66s # "keywordLocation": "/properties/list/$ref/items" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 952 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 953 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/1", 66s # "keywordLocation": "/items/multipleOf" 66s # }, 66s # { 66s # "error": "subschema is not valid against all items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/1", 66s # "keywordLocation": "/items/multipleOf" 66s # }, 66s # { 66s # "error": "subschema is not valid against all items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 954 - short-circuit.json: "items (array form) does not improperly short-circuit" - "single item is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 955 - short-circuit.json: "items (array form) does not improperly short-circuit" - "second item is invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/1", 66s # "keywordLocation": "/items/1/multipleOf" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/1", 66s # "keywordLocation": "/items/1/multipleOf" 66s # }, 66s # { 66s # "error": "not all items are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/items" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 956 - short-circuit.json: "additionalItems does not improperly short-circuit" - "single additional item is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 957 - short-circuit.json: "additionalItems does not improperly short-circuit" - "second additional item is invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/2", 66s # "keywordLocation": "/additionalItems/multipleOf" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/2", 66s # "keywordLocation": "/additionalItems/multipleOf" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 958 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "single item is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 959 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "second item is invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/1", 66s # "keywordLocation": "/unevaluatedItems/multipleOf" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/1", 66s # "keywordLocation": "/unevaluatedItems/multipleOf" 66s # }, 66s # { 66s # "error": "subschema is not valid against all additional items", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedItems" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 960 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 961 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/properties/beta/multipleOf" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/properties/beta/multipleOf" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 962 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 963 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/properties/beta" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/properties/beta" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/properties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 964 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 965 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/patternProperties/^b/multipleOf" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/patternProperties/^b/multipleOf" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 966 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 967 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/patternProperties/^b" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "property not permitted", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/patternProperties/^b" 66s # }, 66s # { 66s # "error": "not all properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/patternProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 968 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 969 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/additionalProperties/multipleOf" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/additionalProperties/multipleOf" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/additionalProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 970 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "single property is valid" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 971 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "second property is invalid" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/unevaluatedProperties/multipleOf" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "value is not a multiple of 2", 66s # "instanceLocation": "/beta", 66s # "keywordLocation": "/unevaluatedProperties/multipleOf" 66s # }, 66s # { 66s # "error": "not all additional properties are valid", 66s # "instanceLocation": "", 66s # "keywordLocation": "/unevaluatedProperties" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 972 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 973 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "got string, not number", 66s # "instanceLocation": "", 66s # "keywordLocation": "/type" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "got string, not number", 66s # "instanceLocation": "", 66s # "keywordLocation": "/type" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 974 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "got object, not number", 66s # "instanceLocation": "", 66s # "keywordLocation": "/type" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "got object, not number", 66s # "instanceLocation": "", 66s # "keywordLocation": "/type" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 975 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 66s # result: { 66s # "errors": [ 66s # { 66s # "error": "got array, not number", 66s # "instanceLocation": "", 66s # "keywordLocation": "/type" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "error": "got array, not number", 66s # "instanceLocation": "", 66s # "keywordLocation": "/type" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s ok 976 - vocabulary.json: "valid $vocabulary" - "a valid $vocabulary value" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 977 - vocabulary.json: "invalid $vocabulary (wrong specification version), but not until we evaluate with this metaschema" - "invalid $vocabulary (wrong specification version): register this metaschema" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 978 - vocabulary.json: "use schema (invalid $vocabulary) as a metaschema" - "invalid $vocabulary value: wrong specification version" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core", 66s # "error": "\"https://json-schema.org/draft/2020-12/vocab/core\" uses draft2020-12, but the metaschema itself uses draft2019-09", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 66s # "error": "the first vocabulary (by evaluation_order) must be Core", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$schema/$vocabulary" 66s # }, 66s # { 66s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$schema" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core", 66s # "error": "\"https://json-schema.org/draft/2020-12/vocab/core\" uses draft2020-12, but the metaschema itself uses draft2019-09", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core" 66s # }, 66s # { 66s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 66s # "error": "the first vocabulary (by evaluation_order) must be Core", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$schema/$vocabulary" 66s # }, 66s # { 66s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$schema" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s ok 979 - vocabulary.json: "invalid $vocabulary (unknown URI), but not until we evaluate with this metaschema" - "invalid $vocabulary (unknown URI): register this metaschema" { 66s # result: { 66s # "valid": true 66s # } 66s # short-circuited result: { 66s # "valid": true 66s # } 66s ok 1 - test passes: data is valid: true 66s 1..1 66s } 66s ok 980 - vocabulary.json: "use schema (unknown URI) as a metaschema" - "invalid $vocabulary value: unknown URI" { 66s # result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 66s # "error": "\"https://foo.com\" is not a known vocabulary", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 66s # }, 66s # { 66s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$schema" 66s # } 66s # ], 66s # "valid": false 66s # } 66s # short-circuited result: { 66s # "errors": [ 66s # { 66s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 66s # "error": "\"https://foo.com\" is not a known vocabulary", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 66s # }, 66s # { 66s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 66s # "instanceLocation": "", 66s # "keywordLocation": "/$schema" 66s # } 66s # ], 66s # "valid": false 66s # } 66s ok 1 - test passes: data is valid: false 66s 1..1 66s } 66s # 66s # generated with: Test::JSON::Schema::Acceptance 1.029 66s # specification version: draft2019-09 66s # using custom test directory: t/additional-tests-draft2019-09 66s # optional tests included: yes 66s # 66s # filename pass todo-fail fail 66s # --------------------------------------------------------------- 66s # anchor.json 2 0 0 66s # annotation-collection.json 10 0 0 66s # badRef.json 3 0 0 66s # faux-buggy-schemas.json 2 0 0 66s # format-date-time.json 4 0 0 66s # format-date.json 1 0 0 66s # format-duration.json 9 0 0 66s # format-ipv4.json 4 0 0 66s # format-ipv6.json 17 0 0 66s # format-relative-json-pointer.json 7 0 0 66s # format-time.json 13 0 0 66s # formats.json 4 0 0 66s # id.json 6 0 0 66s # integers.json 29 0 0 66s # keyword-independence.json 812 0 0 66s # loose-types-const-enum.json 8 0 0 66s # recursive-dynamic.json 4 0 0 66s # ref-and-id.json 6 0 0 66s # ref.json 10 0 0 66s # short-circuit.json 20 0 0 66s # unknownKeyword.json 4 0 0 66s # vocabulary.json 5 0 0 66s # --------------------------------------------------------------- 66s # TOTAL 980 0 0 66s # 66s # Congratulations, all non-optional tests are passing! 66s # 66s ok 981 - no leaks in the main evaluator object 66s ok 982 - no leaks in the short-circuiting evaluator object 66s ok 983 - got unsupported keyword warnings 66s 1..983 66s ok 69s t/additional-tests-draft2020-12.t ....... 69s # 69s # AUTHOR_TESTING: 69s # AUTOMATED_TESTING: 1 69s # EXTENDED_TESTING: 69s # NO_TODO: 69s # TEST_DIR: 69s # NO_SHORT_CIRCUIT: 69s # 69s # running tests in /tmp/autopkgtest.kEyFY6/autopkgtest_tmp/smokef6VDtA/t/additional-tests-draft2020-12 against draft2020-12... 69s # 69s ok 1 - anchor.json: "non-schema object containing an $anchor property" - "skip traversing definition for a valid result" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 2 - anchor.json: "non-schema object containing an $anchor property" - "const at const_not_anchor does not match" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else/$ref/const" 69s # }, 69s # { 69s # "error": "subschema is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else/$ref/const" 69s # }, 69s # { 69s # "error": "subschema is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 3 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "properties evaluated from allOf" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 4 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "extra property" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/bar", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/bar", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 5 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "properties evaluated from additionalProperties" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 6 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "extra property" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/bar", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/bar", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 7 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "properties evaluated from allOf, but unevaluated is buried" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/foo", 69s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "no subschemas are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/foo", 69s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "no subschemas are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 8 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "no properties" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 9 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "properties evaluated from additionalProperties, but unevaluated is buried" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/foo", 69s # "keywordLocation": "/allOf/0/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/allOf/0/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "subschema 0 is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/allOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/foo", 69s # "keywordLocation": "/allOf/0/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/allOf/0/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "subschema 0 is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/allOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 10 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "no properties" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 11 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 12 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/not" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/not" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 13 - badRef.json: "good references in schemas" - "this data is never used" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 14 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "$ref value is not a valid URI reference", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then/$ref" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "$ref value is not a valid URI reference", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then/$ref" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 15 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "$ref value is not a valid URI reference", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then/$ref" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "$ref value is not a valid URI reference", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then/$ref" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 16 - dynamicRef.json: "after leaving a dynamic scope, it should not be used by a $dynamicRef" - "string matches /$defs/thingy, but the $dynamicRef does not stop here" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 69s # "error": "got string, not null", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then/$ref/$dynamicRef/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "main#/then", 69s # "error": "subschema is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 69s # "error": "got string, not null", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then/$ref/$dynamicRef/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "main#/then", 69s # "error": "subschema is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 17 - dynamicRef.json: "after leaving a dynamic scope, it should not be used by a $dynamicRef" - "first_scope is not in dynamic scope for the $dynamicRef" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 69s # "error": "got integer, not null", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then/$ref/$dynamicRef/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "main#/then", 69s # "error": "subschema is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 69s # "error": "got integer, not null", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then/$ref/$dynamicRef/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "main#/then", 69s # "error": "subschema is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/then" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 18 - dynamicRef.json: "after leaving a dynamic scope, it should not be used by a $dynamicRef" - "value validates against /then/$defs/thingy, the final stop for the $dynamicRef" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 19 - dynamicRef.json: "schema in dynamic scope must have a $dynamicAnchor that matches the fragment" - "value would fail under either subschema" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "orig#/minimum", 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$dynamicRef/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "orig#/minimum", 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$dynamicRef/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 20 - dynamicRef.json: "schema in dynamic scope must have a $dynamicAnchor that matches the fragment" - "$anchor does not match $dynamicAnchor; original subschema is used" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 21 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a true schema" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 22 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a false schema" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "#/$defs/false", 69s # "error": "subschema is false", 69s # "instanceLocation": "/false", 69s # "keywordLocation": "/properties/false/$dynamicRef" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "#/$defs/false", 69s # "error": "subschema is false", 69s # "instanceLocation": "/false", 69s # "keywordLocation": "/properties/false/$dynamicRef" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 23 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 24 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 69s # "error": "got string, not integer", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/0/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 69s # "error": "got string, not integer", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/1/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/2/const" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/3/enum" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 69s # "error": "no subschemas are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 69s # "error": "got string, not integer", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/0/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 69s # "error": "got string, not integer", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/1/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/2/const" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/3/enum" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 69s # "error": "no subschemas are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 25 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 26 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 27 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid date-time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid date-time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 28 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid date-time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid date-time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 29 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid date string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid date string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 30 - format-duration.json: "validation of duration strings" - "years and months can appear without days" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 31 - format-duration.json: "validation of duration strings" - "months and days can appear without years" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 32 - format-duration.json: "validation of duration strings" - "hours and minutes can appear without seconds" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 33 - format-duration.json: "validation of duration strings" - "minutes and seconds can appear without hour" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 34 - format-duration.json: "validation of duration strings" - "elements may be omitted if their value is zero" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 35 - format-duration.json: "validation of duration strings" - "half a year duration, with full stop decimal point" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 36 - format-duration.json: "validation of duration strings" - "half a year duration, with comma decimal point" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 37 - format-duration.json: "validation of duration strings" - "only one unit can have a non-integer quantity" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid duration string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid duration string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 38 - format-duration.json: "validation of duration strings" - "only the smallest unit can have a non-integer quantity" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid duration string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid duration string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 39 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 40 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 41 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 42 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 43 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 44 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 45 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 46 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 47 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 48 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 49 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 50 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 51 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 52 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 53 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 54 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 55 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 56 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 57 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 58 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 59 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 60 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 61 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 62 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 63 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 64 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid relative-json-pointer string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid relative-json-pointer string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 65 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid relative-json-pointer string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid relative-json-pointer string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 66 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid relative-json-pointer string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid relative-json-pointer string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 67 - format-time.json: "validation of time strings" - "valid leap second, Zulu" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 68 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 69 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 70 - format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 71 - format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 72 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 73 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 74 - format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 75 - format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 76 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 77 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 78 - format-time.json: "validation of time strings" - "no time offset" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 79 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 80 - formats.json: "format validation after a $ref" - "invalid duration" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "#/$defs/my_format/format", 69s # "error": "not a valid duration string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$ref/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "#/$defs/my_format/format", 69s # "error": "not a valid duration string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$ref/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 81 - formats.json: "format validation after a $ref" - "valid duration" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 82 - formats.json: "format validation after an $id" - "invalid duration" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 69s # "error": "not a valid duration string", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items/allOf/0/format" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "bloop#/allOf", 69s # "error": "subschema 0 is not valid", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items/allOf" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 69s # "error": "not a valid duration string", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items/allOf/0/format" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "bloop#/allOf", 69s # "error": "subschema 0 is not valid", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items/allOf" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 83 - formats.json: "format validation after an $id" - "valid duration" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s # 69s ok 84 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 85 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else/$ref/const" 69s # }, 69s # { 69s # "error": "subschema is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else/$ref/const" 69s # }, 69s # { 69s # "error": "subschema is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 86 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "$id cannot be empty", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$id" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "$id cannot be empty", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$id" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 87 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "$id cannot be empty", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$id" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "$id cannot be empty", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$id" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 88 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "$id cannot be empty", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$id" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "$id cannot be empty", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$id" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 89 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "$id cannot be empty", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$id" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "$id cannot be empty", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$id" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 90 - integers.json: "type checks" - "beyond int64 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 91 - integers.json: "type checks" - "int64 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 92 - integers.json: "type checks" - "beyond int32 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 93 - integers.json: "type checks" - "int32 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 94 - integers.json: "type checks" - "zero" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 95 - integers.json: "type checks" - "int32 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 96 - integers.json: "type checks" - "beyond int32 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 97 - integers.json: "type checks" - "upper int64 boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 98 - integers.json: "type checks" - "beyond int64 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 99 - integers.json: "int32 range checks" - "beyond lower boundary" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than -2147483648", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than -2147483648", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 100 - integers.json: "int32 range checks" - "lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 101 - integers.json: "int32 range checks" - "zero" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 102 - integers.json: "int32 range checks" - "upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 103 - integers.json: "int32 range checks" - "beyond upper boundary" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2147483647", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2147483647", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 104 - integers.json: "int64 range checks" - "beyond lower boundary" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than -9223372036854775808", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than -9223372036854775808", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 105 - integers.json: "int64 range checks" - "lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 106 - integers.json: "int64 range checks" - "zero" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 107 - integers.json: "int64 range checks" - "upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 108 - integers.json: "int64 range checks" - "beyond upper boundary" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 9223372036854775807", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 9223372036854775807", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 109 - integers.json: "equality checks" - "beyond int64 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 110 - integers.json: "equality checks" - "int64 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 111 - integers.json: "equality checks" - "beyond int32 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 112 - integers.json: "equality checks" - "int32 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 113 - integers.json: "equality checks" - "zero" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 114 - integers.json: "equality checks" - "one" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/enum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/enum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 115 - integers.json: "equality checks" - "int32 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 116 - integers.json: "equality checks" - "beyond int32 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 117 - integers.json: "equality checks" - "int64 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 118 - integers.json: "equality checks" - "beyond int64 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s # 69s ok 119 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 120 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 121 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 122 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 123 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 124 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 125 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 126 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 127 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 128 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 129 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 130 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 131 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 132 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 133 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 134 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 135 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 136 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 137 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 138 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 139 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 140 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 141 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 142 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 143 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 144 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 145 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 146 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 147 - keyword-independence.json: "items + maximum" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 148 - keyword-independence.json: "items + maximum" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 149 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 150 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 151 - keyword-independence.json: "items + minimum" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 152 - keyword-independence.json: "items + minimum" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 153 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 154 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 155 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 156 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 157 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 158 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 159 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 160 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 161 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 162 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 163 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 164 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 165 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 166 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 167 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 168 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 169 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 170 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 171 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 172 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 173 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 174 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 175 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 176 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 177 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 178 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 179 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 180 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 181 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 182 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 183 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 184 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 185 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 186 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 187 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 188 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 189 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 190 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 191 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 192 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 193 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 194 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 195 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 196 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 197 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 198 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 199 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 200 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 201 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 202 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 203 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 204 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 205 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 206 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 207 - keyword-independence.json: "maximum + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 208 - keyword-independence.json: "maximum + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 209 - keyword-independence.json: "maximum + prefixItems" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 210 - keyword-independence.json: "maximum + prefixItems" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 211 - keyword-independence.json: "minimum + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 212 - keyword-independence.json: "minimum + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 213 - keyword-independence.json: "minimum + prefixItems" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 214 - keyword-independence.json: "minimum + prefixItems" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 215 - keyword-independence.json: "multipleOf + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 216 - keyword-independence.json: "multipleOf + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 217 - keyword-independence.json: "multipleOf + prefixItems" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 218 - keyword-independence.json: "multipleOf + prefixItems" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 219 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 220 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 221 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 222 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 223 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 224 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 225 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 226 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 227 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 228 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 229 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 230 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 231 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 232 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 233 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 234 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 235 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 236 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 237 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 238 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 239 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 240 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 241 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 242 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 243 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 244 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 245 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 246 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 247 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 248 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 249 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 250 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 251 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 252 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 253 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 254 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 255 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 256 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 257 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 258 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 259 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 260 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 261 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 262 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 263 - keyword-independence.json: "contains + dependentRequired" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 264 - keyword-independence.json: "contains + dependentRequired" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 265 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 266 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 267 - keyword-independence.json: "contains + dependentSchemas" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 268 - keyword-independence.json: "contains + dependentSchemas" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 269 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 270 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 271 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 272 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 273 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 274 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 275 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 276 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 277 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 278 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 279 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 280 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 281 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 282 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 283 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 284 - keyword-independence.json: "contains + properties" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 285 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 286 - keyword-independence.json: "contains + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 287 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 288 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 289 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 290 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 291 - keyword-independence.json: "contains + required" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 292 - keyword-independence.json: "contains + required" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 293 - keyword-independence.json: "contains + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 294 - keyword-independence.json: "contains + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 295 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 296 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 297 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 298 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 299 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 300 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 301 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 302 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 303 - keyword-independence.json: "dependentRequired + items" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 304 - keyword-independence.json: "dependentRequired + items" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 305 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 306 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 307 - keyword-independence.json: "dependentSchemas + items" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 308 - keyword-independence.json: "dependentSchemas + items" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 309 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 310 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 311 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 312 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 313 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 314 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 315 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 316 - keyword-independence.json: "items + minProperties" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 317 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 318 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 319 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 320 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 321 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 322 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 323 - keyword-independence.json: "items + properties" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 324 - keyword-independence.json: "items + properties" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 325 - keyword-independence.json: "items + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 326 - keyword-independence.json: "items + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 327 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 328 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 329 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 330 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 331 - keyword-independence.json: "items + required" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 332 - keyword-independence.json: "items + required" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 333 - keyword-independence.json: "items + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 334 - keyword-independence.json: "items + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 335 - keyword-independence.json: "items + unevaluatedProperties" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 336 - keyword-independence.json: "items + unevaluatedProperties" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 337 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 338 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 339 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 340 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 341 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 342 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 343 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 344 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 345 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 346 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 347 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 348 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 349 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 350 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 351 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 352 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 353 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 354 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 355 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 356 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 357 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 358 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 359 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 360 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 361 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 362 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 363 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 364 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 365 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 366 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 367 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 368 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 369 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 370 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 371 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 372 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 373 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 374 - keyword-independence.json: "maxItems + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 375 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 376 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 377 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 378 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 379 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 380 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 381 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 382 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 383 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 384 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 385 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 386 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 387 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 388 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 389 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 390 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 391 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 392 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 393 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 394 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 395 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 396 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 397 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 398 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 399 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 400 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 401 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 402 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 403 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 404 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 405 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 406 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 407 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 408 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 409 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 410 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 411 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 412 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 413 - keyword-independence.json: "minItems + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 414 - keyword-independence.json: "minItems + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 415 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 416 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 417 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 418 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 419 - keyword-independence.json: "additionalProperties + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 420 - keyword-independence.json: "additionalProperties + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 421 - keyword-independence.json: "additionalProperties + prefixItems" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 422 - keyword-independence.json: "additionalProperties + prefixItems" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 423 - keyword-independence.json: "dependentRequired + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 424 - keyword-independence.json: "dependentRequired + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 425 - keyword-independence.json: "dependentRequired + prefixItems" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 426 - keyword-independence.json: "dependentRequired + prefixItems" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 427 - keyword-independence.json: "dependentSchemas + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 428 - keyword-independence.json: "dependentSchemas + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 429 - keyword-independence.json: "dependentSchemas + prefixItems" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 430 - keyword-independence.json: "dependentSchemas + prefixItems" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 431 - keyword-independence.json: "maxProperties + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 432 - keyword-independence.json: "maxProperties + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 433 - keyword-independence.json: "maxProperties + prefixItems" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 434 - keyword-independence.json: "maxProperties + prefixItems" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 435 - keyword-independence.json: "minProperties + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 436 - keyword-independence.json: "minProperties + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 437 - keyword-independence.json: "minProperties + prefixItems" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 438 - keyword-independence.json: "minProperties + prefixItems" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 439 - keyword-independence.json: "patternProperties + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 440 - keyword-independence.json: "patternProperties + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 441 - keyword-independence.json: "patternProperties + prefixItems" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 442 - keyword-independence.json: "patternProperties + prefixItems" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 443 - keyword-independence.json: "prefixItems + properties" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 444 - keyword-independence.json: "prefixItems + properties" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 445 - keyword-independence.json: "prefixItems + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 446 - keyword-independence.json: "prefixItems + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 447 - keyword-independence.json: "prefixItems + propertyNames" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 448 - keyword-independence.json: "prefixItems + propertyNames" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 449 - keyword-independence.json: "prefixItems + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 450 - keyword-independence.json: "prefixItems + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 451 - keyword-independence.json: "prefixItems + required" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 452 - keyword-independence.json: "prefixItems + required" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 453 - keyword-independence.json: "prefixItems + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 454 - keyword-independence.json: "prefixItems + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 455 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 456 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 457 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 458 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 459 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 460 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 461 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 462 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 463 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 464 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 465 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 466 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 467 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 468 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 469 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 470 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 471 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 472 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 473 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 474 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 475 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 476 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 477 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 478 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 479 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 480 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 481 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 482 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 483 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 484 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 485 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 486 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 487 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 488 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 489 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 490 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 491 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 492 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 493 - keyword-independence.json: "required + unevaluatedItems" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 494 - keyword-independence.json: "required + unevaluatedItems" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 495 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 496 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 497 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 498 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 499 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 500 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 501 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 502 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 503 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 504 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 505 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 506 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 507 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 508 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 509 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 510 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 511 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 512 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 513 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 514 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 515 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 516 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 517 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 518 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 519 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 520 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 521 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 522 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 523 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 524 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 525 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 526 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 527 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 528 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 529 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 530 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 531 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 532 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 533 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 534 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 535 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 536 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 537 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 538 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 539 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 540 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 541 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 542 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 543 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 544 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 545 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 546 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 547 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is not valid against any item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/contains" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 548 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 549 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 550 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 551 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 552 - keyword-independence.json: "items + maxLength" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 553 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 554 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 555 - keyword-independence.json: "items + minLength" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 556 - keyword-independence.json: "items + minLength" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 557 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 558 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 559 - keyword-independence.json: "items + pattern" - "array, items invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/items" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 560 - keyword-independence.json: "items + pattern" - "array, items valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 561 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 562 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 563 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 564 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 565 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 566 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 567 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 568 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 569 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 570 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 571 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has more than 1 item", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 572 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 573 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 574 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 575 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 576 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 577 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 578 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 579 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 580 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 581 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 582 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 583 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "array has fewer than 2 items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 584 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 585 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 586 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 587 - keyword-independence.json: "maxLength + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 588 - keyword-independence.json: "maxLength + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 589 - keyword-independence.json: "maxLength + prefixItems" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 590 - keyword-independence.json: "maxLength + prefixItems" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 591 - keyword-independence.json: "minLength + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 592 - keyword-independence.json: "minLength + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 593 - keyword-independence.json: "minLength + prefixItems" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 594 - keyword-independence.json: "minLength + prefixItems" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 595 - keyword-independence.json: "pattern + prefixItems" - "array, prefixItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/prefixItems/0" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 596 - keyword-independence.json: "pattern + prefixItems" - "array, prefixItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 597 - keyword-independence.json: "pattern + prefixItems" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 598 - keyword-independence.json: "pattern + prefixItems" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 599 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 600 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 601 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 602 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 603 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 604 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 605 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 606 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 607 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional item not permitted", 69s # "instanceLocation": "/0", 69s # "keywordLocation": "/unevaluatedItems" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 608 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 609 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 610 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 611 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 612 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 613 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 614 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 615 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 616 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 617 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 618 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 619 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "items at indices 0 and 1 are not unique", 69s # "instanceLocation": "", 69s # "keywordLocation": "/uniqueItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 620 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 621 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 622 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 623 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 624 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 625 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 626 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 627 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 628 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 629 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 630 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 631 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 632 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 633 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 634 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 635 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 636 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 637 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 638 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 639 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 640 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 641 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 642 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 643 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 644 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 645 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 646 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 647 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 648 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 649 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 650 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 651 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 652 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 653 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 654 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 655 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 656 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 657 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 658 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 659 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 660 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 661 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 662 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 663 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 664 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 665 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 666 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 667 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 668 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 669 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 670 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 671 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 672 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 673 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 674 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 675 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 676 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 677 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 678 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 679 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 680 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 681 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 682 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 683 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 684 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 685 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 686 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 687 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 688 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 689 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 690 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 691 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 692 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 693 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 694 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 695 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 696 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 697 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 698 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 699 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 700 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 701 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 702 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 703 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 704 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 705 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 706 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 707 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 708 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 709 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 710 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 711 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 712 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 713 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 714 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 715 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 716 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 717 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 718 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 719 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 720 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 721 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 722 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 723 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 724 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 725 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 726 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 727 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 728 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 729 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 730 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 731 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 732 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 733 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 734 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 735 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 736 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 737 - keyword-independence.json: "maximum + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 738 - keyword-independence.json: "maximum + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 739 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 740 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 741 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 742 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 743 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 744 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 745 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 746 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 747 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 748 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 749 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 750 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 751 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 752 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 753 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 754 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 755 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 756 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 757 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 758 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 759 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 760 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 761 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 762 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 763 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 764 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 765 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 766 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 767 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 768 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 769 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 770 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 771 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 772 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 773 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 774 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 775 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 776 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 777 - keyword-independence.json: "minimum + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 778 - keyword-independence.json: "minimum + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 779 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 780 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 781 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 782 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 783 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 784 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 785 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 786 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 787 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 788 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 789 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 790 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 791 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 792 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 793 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 794 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 795 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 796 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 797 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 798 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 799 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 800 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 801 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 802 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 803 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 804 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 805 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 806 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 807 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 808 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 809 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 810 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 811 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 812 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 813 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 814 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 815 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 816 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 817 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 818 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 819 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 820 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 821 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 822 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 823 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 824 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 825 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 826 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 827 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 828 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 829 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 830 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 831 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMaximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 832 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 833 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 834 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 835 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 836 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 837 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 838 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 839 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 840 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 841 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 842 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 843 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than or equal to 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/exclusiveMinimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 844 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 845 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 846 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 847 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 848 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 849 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 850 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 851 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 852 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 853 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 854 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 855 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 856 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 857 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 858 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 859 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 860 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 861 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 862 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 863 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 864 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 865 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 866 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 867 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 868 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 869 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 870 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 871 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 872 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 873 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 874 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 875 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 876 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 877 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 878 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 879 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/multipleOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 880 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 881 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 882 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 883 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 884 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 885 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 886 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 887 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 888 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 889 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 890 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 891 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/additionalProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 892 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 893 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 894 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 895 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 896 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 897 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 898 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 899 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 900 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 901 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 902 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 903 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: y", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentRequired" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 904 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 905 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 906 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 907 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 908 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 909 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 910 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 911 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 912 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 913 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 914 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 915 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas/x" 69s # }, 69s # { 69s # "error": "not all dependencies are satisfied", 69s # "instanceLocation": "", 69s # "keywordLocation": "/dependentSchemas" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 916 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 917 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 918 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 919 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 920 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 921 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 922 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 923 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 924 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 925 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 926 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 927 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has more than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 928 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 929 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 930 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 931 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 932 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 933 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 934 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 935 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 936 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 937 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 938 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 939 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object has fewer than 1 property", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 940 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 941 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 942 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 943 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 944 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 945 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 946 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 947 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 948 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 949 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 950 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 951 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/no", 69s # "keywordLocation": "/patternProperties/no" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 952 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 953 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 954 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 955 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 956 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 957 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 958 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 959 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 960 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 961 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 962 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 963 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/properties/x" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 964 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 965 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 966 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 967 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 968 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 969 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 970 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 971 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 972 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 973 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 974 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 975 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "subschema is false", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/propertyNames" 69s # }, 69s # { 69s # "error": "not all property names are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/propertyNames" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 976 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 977 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 978 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 979 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 980 - keyword-independence.json: "maxLength + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 981 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 982 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 983 - keyword-independence.json: "minLength + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 984 - keyword-independence.json: "minLength + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 985 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 986 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 987 - keyword-independence.json: "pattern + required" - "object, required invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "object is missing property: x", 69s # "instanceLocation": "", 69s # "keywordLocation": "/required" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 988 - keyword-independence.json: "pattern + required" - "object, required valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 989 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 990 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 991 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 992 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 993 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is greater than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maxLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 994 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 995 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 996 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 997 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "length is less than 2", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minLength" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 998 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 999 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "additional property not permitted", 69s # "instanceLocation": "/x", 69s # "keywordLocation": "/unevaluatedProperties" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1000 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1001 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "pattern does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/pattern" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1002 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s # 69s ok 1003 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "/const_string", 69s # "keywordLocation": "/properties/const_string/const" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "/const_string", 69s # "keywordLocation": "/properties/const_string/const" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1004 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1005 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1006 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "/const_number", 69s # "keywordLocation": "/properties/const_number/const" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "/const_number", 69s # "keywordLocation": "/properties/const_number/const" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1007 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "/enum_string", 69s # "keywordLocation": "/properties/enum_string/enum" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "/enum_string", 69s # "keywordLocation": "/properties/enum_string/enum" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1008 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1009 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1010 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "/enum_number", 69s # "keywordLocation": "/properties/enum_number/enum" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "/enum_number", 69s # "keywordLocation": "/properties/enum_number/enum" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 1011 - recursive-dynamic.json: "dynamic $dynamicRef destination (not predictable at schema compile time)" - "numeric node" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1012 - recursive-dynamic.json: "dynamic $dynamicRef destination (not predictable at schema compile time)" - "integer node" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "integerNode.json#/type", 69s # "error": "got number, not one of object, integer", 69s # "instanceLocation": "/november", 69s # "keywordLocation": "/else/$ref/additionalProperties/$dynamicRef/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else/$ref/additionalProperties" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "main.json#/else", 69s # "error": "subschema is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "integerNode.json#/type", 69s # "error": "got number, not one of object, integer", 69s # "instanceLocation": "/november", 69s # "keywordLocation": "/else/$ref/additionalProperties/$dynamicRef/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else/$ref/additionalProperties" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "main.json#/else", 69s # "error": "subschema is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/else" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 1013 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is valid against first definition" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1014 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is invalid against first definition" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 69s # "error": "value is greater than 10", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$ref/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 69s # "error": "value is greater than 10", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$ref/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1015 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is valid against first definition" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1016 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is invalid against first definition" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 69s # "error": "value is greater than 10", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$ref/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 69s # "error": "value is greater than 10", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$ref/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1017 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with json pointers)" - "data is valid against innermost type check" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1018 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with json pointers)" - "data is invalid against innermost type check" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 69s # "error": "got string, not number", 69s # "instanceLocation": "", 69s # "keywordLocation": "/allOf/0/$ref/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 69s # "error": "got string, not number", 69s # "instanceLocation": "", 69s # "keywordLocation": "/allOf/0/oneOf/0/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf", 69s # "error": "no subschemas are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/allOf/0/oneOf" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 69s # "error": "subschema 0 is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/allOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 69s # "error": "got string, not number", 69s # "instanceLocation": "", 69s # "keywordLocation": "/allOf/0/$ref/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 69s # "error": "subschema 0 is not valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/allOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 1019 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1020 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 69s # "error": "value is greater than 10", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$ref/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 69s # "error": "value is greater than 10", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$ref/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1021 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1022 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 69s # "error": "value is greater than 10", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$ref/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 69s # "error": "value is greater than 10", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$ref/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1023 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/enum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/enum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1024 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1025 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "$ref value is not a valid URI reference", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$defs/foo/$ref" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "$ref value is not a valid URI reference", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$defs/foo/$ref" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1026 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "$ref value is not a valid URI reference", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$defs/foo/$ref" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "$ref value is not a valid URI reference", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$defs/foo/$ref" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1027 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1028 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 69s # "error": "got string, not integer", 69s # "instanceLocation": "/list/0", 69s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "/list", 69s # "keywordLocation": "/properties/list/$ref/items" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 69s # "error": "got string, not integer", 69s # "instanceLocation": "/list/0", 69s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "/list", 69s # "keywordLocation": "/properties/list/$ref/items" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 1029 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1030 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/1", 69s # "keywordLocation": "/items/multipleOf" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/1", 69s # "keywordLocation": "/items/multipleOf" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1031 - short-circuit.json: "prefixItems does not improperly short-circuit" - "single item is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1032 - short-circuit.json: "prefixItems does not improperly short-circuit" - "second item is invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/1", 69s # "keywordLocation": "/prefixItems/1/multipleOf" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/1", 69s # "keywordLocation": "/prefixItems/1/multipleOf" 69s # }, 69s # { 69s # "error": "not all items are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/prefixItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1033 - short-circuit.json: "items does not improperly short-circuit" - "single additional item is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1034 - short-circuit.json: "items does not improperly short-circuit" - "second additional item is invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/2", 69s # "keywordLocation": "/items/multipleOf" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/2", 69s # "keywordLocation": "/items/multipleOf" 69s # }, 69s # { 69s # "error": "subschema is not valid against all items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/items" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1035 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "single item is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1036 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "second item is invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/1", 69s # "keywordLocation": "/unevaluatedItems/multipleOf" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/1", 69s # "keywordLocation": "/unevaluatedItems/multipleOf" 69s # }, 69s # { 69s # "error": "subschema is not valid against all additional items", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedItems" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1037 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1038 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/properties/beta/multipleOf" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/properties/beta/multipleOf" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1039 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1040 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/properties/beta" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/properties/beta" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/properties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1041 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1042 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/patternProperties/^b/multipleOf" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/patternProperties/^b/multipleOf" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1043 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1044 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/patternProperties/^b" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "property not permitted", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/patternProperties/^b" 69s # }, 69s # { 69s # "error": "not all properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/patternProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1045 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1046 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/additionalProperties/multipleOf" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/additionalProperties/multipleOf" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/additionalProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1047 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "single property is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1048 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "second property is invalid" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/unevaluatedProperties/multipleOf" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is not a multiple of 2", 69s # "instanceLocation": "/beta", 69s # "keywordLocation": "/unevaluatedProperties/multipleOf" 69s # }, 69s # { 69s # "error": "not all additional properties are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/unevaluatedProperties" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 1049 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1050 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "got string, not number", 69s # "instanceLocation": "", 69s # "keywordLocation": "/type" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "got string, not number", 69s # "instanceLocation": "", 69s # "keywordLocation": "/type" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1051 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "got object, not number", 69s # "instanceLocation": "", 69s # "keywordLocation": "/type" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "got object, not number", 69s # "instanceLocation": "", 69s # "keywordLocation": "/type" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1052 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "got array, not number", 69s # "instanceLocation": "", 69s # "keywordLocation": "/type" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "got array, not number", 69s # "instanceLocation": "", 69s # "keywordLocation": "/type" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 1053 - vocabulary.json: "valid $vocabulary" - "a valid $vocabulary value" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1054 - vocabulary.json: "invalid $vocabulary (wrong specification version), but not until we evaluate with this metaschema" - "invalid $vocabulary (wrong specification version): register this metaschema" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1055 - vocabulary.json: "use schema (invalid $vocabulary) as a metaschema" - "invalid $vocabulary value: wrong specification version" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core", 69s # "error": "\"https://json-schema.org/draft/2019-09/vocab/core\" uses draft2019-09, but the metaschema itself uses draft2020-12", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 69s # "error": "the first vocabulary (by evaluation_order) must be Core", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$schema/$vocabulary" 69s # }, 69s # { 69s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$schema" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core", 69s # "error": "\"https://json-schema.org/draft/2019-09/vocab/core\" uses draft2019-09, but the metaschema itself uses draft2020-12", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 69s # "error": "the first vocabulary (by evaluation_order) must be Core", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$schema/$vocabulary" 69s # }, 69s # { 69s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$schema" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1056 - vocabulary.json: "invalid $vocabulary (unknown URI), but not until we evaluate with this metaschema" - "invalid $vocabulary (unknown URI): register this metaschema" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1057 - vocabulary.json: "use schema (unknown URI) as a metaschema" - "invalid $vocabulary value: unknown URI" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 69s # "error": "\"https://foo.com\" is not a known vocabulary", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 69s # }, 69s # { 69s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$schema" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 69s # "error": "\"https://foo.com\" is not a known vocabulary", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 69s # }, 69s # { 69s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 69s # "instanceLocation": "", 69s # "keywordLocation": "/$schema" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1058 - vocabulary.json: "custom metaschema with format-assertion: false" - "custom metaschema is loaded" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1059 - vocabulary.json: "custom metaschema with format-assertion: true" - "custom metaschema is loaded" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1060 - vocabulary.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: valid string" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1061 - vocabulary.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: invalid string" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 69s # "error": "not a valid ipv4", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 69s # "error": "not a valid ipv4", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 1062 - vocabulary.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: valid string" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 1063 - vocabulary.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: invalid string" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 69s # "error": "not a valid ipv4", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 69s # "error": "not a valid ipv4", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s # generated with: Test::JSON::Schema::Acceptance 1.029 69s # specification version: draft2020-12 69s # using custom test directory: t/additional-tests-draft2020-12 69s # optional tests included: yes 69s # 69s # filename pass todo-fail fail 69s # --------------------------------------------------------------- 69s # anchor.json 2 0 0 69s # annotation-collection.json 10 0 0 69s # badRef.json 3 0 0 69s # dynamicRef.json 7 0 0 69s # faux-buggy-schemas.json 2 0 0 69s # format-date-time.json 4 0 0 69s # format-date.json 1 0 0 69s # format-duration.json 9 0 0 69s # format-ipv4.json 4 0 0 69s # format-ipv6.json 17 0 0 69s # format-relative-json-pointer.json 7 0 0 69s # format-time.json 13 0 0 69s # formats.json 4 0 0 69s # id.json 6 0 0 69s # integers.json 29 0 0 69s # keyword-independence.json 884 0 0 69s # loose-types-const-enum.json 8 0 0 69s # recursive-dynamic.json 2 0 0 69s # ref-and-id.json 6 0 0 69s # ref.json 10 0 0 69s # short-circuit.json 20 0 0 69s # unknownKeyword.json 4 0 0 69s # vocabulary.json 11 0 0 69s # --------------------------------------------------------------- 69s # TOTAL 1063 0 0 69s # 69s # Congratulations, all non-optional tests are passing! 69s # 69s ok 1064 - no leaks in the main evaluator object 69s ok 1065 - no leaks in the short-circuiting evaluator object 69s ok 1066 - got unsupported keyword warnings 69s 1..1066 69s ok 69s t/additional-tests-draft4.t ............. 69s # 69s # AUTHOR_TESTING: 69s # AUTOMATED_TESTING: 1 69s # EXTENDED_TESTING: 69s # NO_TODO: 69s # TEST_DIR: 69s # NO_SHORT_CIRCUIT: 69s # 69s # running tests in /tmp/autopkgtest.kEyFY6/autopkgtest_tmp/smokef6VDtA/t/additional-tests-draft4 against draft4... 69s # 69s ok 1 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 2 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 3 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid date-time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid date-time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 4 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid date-time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid date-time string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 5 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 6 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 7 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 8 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv4 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 9 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 10 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 11 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 12 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 13 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 14 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 15 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 16 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 17 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 18 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 19 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 20 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 21 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 22 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 23 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 24 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 25 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "not a valid ipv6 string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/format" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 26 - id.json: "weird but valid use of non-empty plain name fragment in id" - "valid case, number" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 27 - id.json: "weird but valid use of non-empty plain name fragment in id" - "valid case, string" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 28 - id.json: "weird but valid use of non-empty plain name fragment in id" - "invalid case" { 69s # result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://example.com/def1#/type", 69s # "error": "got array, not number", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/0/$ref/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "https://example.com/def2#/type", 69s # "error": "got array, not string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/1/$ref/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "https://example.com/draft4-id-and-anchor#/anyOf", 69s # "error": "no subschemas are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "absoluteKeywordLocation": "https://example.com/def1#/type", 69s # "error": "got array, not number", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/0/$ref/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "https://example.com/def2#/type", 69s # "error": "got array, not string", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf/1/$ref/type" 69s # }, 69s # { 69s # "absoluteKeywordLocation": "https://example.com/draft4-id-and-anchor#/anyOf", 69s # "error": "no subschemas are valid", 69s # "instanceLocation": "", 69s # "keywordLocation": "/anyOf" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s ok 29 - integers.json: "type checks" - "beyond int64 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 30 - integers.json: "type checks" - "int64 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 31 - integers.json: "type checks" - "beyond int32 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 32 - integers.json: "type checks" - "int32 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 33 - integers.json: "type checks" - "zero" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 34 - integers.json: "type checks" - "int32 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 35 - integers.json: "type checks" - "beyond int32 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 36 - integers.json: "type checks" - "upper int64 boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 37 - integers.json: "type checks" - "beyond int64 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 38 - integers.json: "int32 range checks" - "beyond lower boundary" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than -2147483648", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than -2147483648", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 39 - integers.json: "int32 range checks" - "lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 40 - integers.json: "int32 range checks" - "zero" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 41 - integers.json: "int32 range checks" - "upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 42 - integers.json: "int32 range checks" - "beyond upper boundary" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2147483647", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 2147483647", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 43 - integers.json: "int64 range checks" - "beyond lower boundary" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than -9223372036854775808", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is less than -9223372036854775808", 69s # "instanceLocation": "", 69s # "keywordLocation": "/minimum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 44 - integers.json: "int64 range checks" - "lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 45 - integers.json: "int64 range checks" - "zero" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 46 - integers.json: "int64 range checks" - "upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 47 - integers.json: "int64 range checks" - "beyond upper boundary" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 9223372036854775807", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value is greater than 9223372036854775807", 69s # "instanceLocation": "", 69s # "keywordLocation": "/maximum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 48 - integers.json: "equality checks" - "beyond int64 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 49 - integers.json: "equality checks" - "int64 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 50 - integers.json: "equality checks" - "beyond int32 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 51 - integers.json: "equality checks" - "int32 lower boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 52 - integers.json: "equality checks" - "zero" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 53 - integers.json: "equality checks" - "one" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/enum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "value does not match", 69s # "instanceLocation": "", 69s # "keywordLocation": "/enum" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s ok 54 - integers.json: "equality checks" - "int32 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 55 - integers.json: "equality checks" - "beyond int32 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 56 - integers.json: "equality checks" - "int64 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 57 - integers.json: "equality checks" - "beyond int64 upper boundary" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s # 69s ok 58 - type.json: "number" - "an integer is a number" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 59 - type.json: "number" - "a float with zero fractional part is a number" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 60 - type.json: "integers" - "an integer is an integer" { 69s # result: { 69s # "valid": true 69s # } 69s # short-circuited result: { 69s # "valid": true 69s # } 69s ok 1 - test passes: data is valid: true 69s 1..1 69s } 69s ok 61 - type.json: "integers" - "a float with zero fractional part is not an integer" { 69s # result: { 69s # "errors": [ 69s # { 69s # "error": "got number, not integer", 69s # "instanceLocation": "", 69s # "keywordLocation": "/type" 69s # } 69s # ], 69s # "valid": false 69s # } 69s # short-circuited result: { 69s # "errors": [ 69s # { 69s # "error": "got number, not integer", 69s # "instanceLocation": "", 69s # "keywordLocation": "/type" 69s # } 69s # ], 69s # "valid": false 69s # } 69s ok 1 - test passes: data is valid: false 69s 1..1 69s } 69s # 69s # generated with: Test::JSON::Schema::Acceptance 1.029 69s # specification version: draft4 69s # using custom test directory: t/additional-tests-draft4 69s # optional tests included: yes 69s # 69s # filename pass todo-fail fail 69s # --------------------------------------------------------------- 69s # format-date-time.json 4 0 0 69s # format-ipv4.json 4 0 0 69s # format-ipv6.json 17 0 0 69s # id.json 3 0 0 69s # integers.json 29 0 0 69s # type.json 4 0 0 69s # --------------------------------------------------------------- 69s # TOTAL 61 0 0 69s # 69s # Congratulations, all non-optional tests are passing! 69s # 69s ok 62 - no leaks in the main evaluator object 69s ok 63 - no leaks in the short-circuiting evaluator object 69s 1..63 69s ok 71s t/additional-tests-draft7.t ............. 71s # 71s # AUTHOR_TESTING: 71s # AUTOMATED_TESTING: 1 71s # EXTENDED_TESTING: 71s # NO_TODO: 71s # TEST_DIR: 71s # NO_SHORT_CIRCUIT: 71s # 71s # running tests in /tmp/autopkgtest.kEyFY6/autopkgtest_tmp/smokef6VDtA/t/additional-tests-draft7 against draft7... 71s # 71s ok 1 - badRef.json: "good references in schemas" - "this data is never used" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 2 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "$ref value is not a valid URI reference", 71s # "instanceLocation": "", 71s # "keywordLocation": "/then/$ref" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "$ref value is not a valid URI reference", 71s # "instanceLocation": "", 71s # "keywordLocation": "/then/$ref" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 3 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "$ref value is not a valid URI reference", 71s # "instanceLocation": "", 71s # "keywordLocation": "/then/$ref" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "$ref value is not a valid URI reference", 71s # "instanceLocation": "", 71s # "keywordLocation": "/then/$ref" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 4 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 5 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 71s # result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 71s # "error": "got string, not integer", 71s # "instanceLocation": "", 71s # "keywordLocation": "/anyOf/0/type" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 71s # "error": "got string, not integer", 71s # "instanceLocation": "", 71s # "keywordLocation": "/anyOf/1/type" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/anyOf/2/const" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/anyOf/3/enum" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 71s # "error": "no subschemas are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/anyOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 71s # "error": "got string, not integer", 71s # "instanceLocation": "", 71s # "keywordLocation": "/anyOf/0/type" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 71s # "error": "got string, not integer", 71s # "instanceLocation": "", 71s # "keywordLocation": "/anyOf/1/type" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/anyOf/2/const" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/anyOf/3/enum" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 71s # "error": "no subschemas are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/anyOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 6 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 7 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 8 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid date-time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid date-time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 9 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid date-time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid date-time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 10 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid date string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid date string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 11 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid ipv4 string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid ipv4 string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 12 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid ipv4 string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid ipv4 string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 13 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 14 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid ipv4 string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid ipv4 string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 15 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 16 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 17 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 18 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 19 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid relative-json-pointer string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid relative-json-pointer string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 20 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid relative-json-pointer string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid relative-json-pointer string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 21 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid relative-json-pointer string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid relative-json-pointer string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 22 - format-time.json: "validation of time strings" - "valid leap second, Zulu" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 23 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 24 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 25 - format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 26 - format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 27 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 28 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 29 - format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 30 - format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 31 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 32 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 33 - format-time.json: "validation of time strings" - "no time offset" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 34 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "not a valid time string", 71s # "instanceLocation": "", 71s # "keywordLocation": "/format" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 35 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 36 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 71s # result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else/$ref/const" 71s # }, 71s # { 71s # "error": "subschema is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else/$ref/const" 71s # }, 71s # { 71s # "error": "subschema is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 37 - id.json: "non-schema object containing an anchor property" - "skip traversing definition for a valid result" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 38 - id.json: "non-schema object containing an anchor property" - "const at const_not_anchor does not match" { 71s # result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else/$ref/const" 71s # }, 71s # { 71s # "error": "subschema is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else/$ref/const" 71s # }, 71s # { 71s # "error": "subschema is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 39 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "$id cannot be empty", 71s # "instanceLocation": "", 71s # "keywordLocation": "/$id" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "$id cannot be empty", 71s # "instanceLocation": "", 71s # "keywordLocation": "/$id" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 40 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "$id cannot be empty", 71s # "instanceLocation": "", 71s # "keywordLocation": "/$id" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "$id cannot be empty", 71s # "instanceLocation": "", 71s # "keywordLocation": "/$id" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 41 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "$id cannot be empty", 71s # "instanceLocation": "", 71s # "keywordLocation": "/$id" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "$id cannot be empty", 71s # "instanceLocation": "", 71s # "keywordLocation": "/$id" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 42 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "$id cannot be empty", 71s # "instanceLocation": "", 71s # "keywordLocation": "/$id" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "$id cannot be empty", 71s # "instanceLocation": "", 71s # "keywordLocation": "/$id" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 43 - id.json: "bad anchor syntax" - "draft7 $id passes through to $anchor" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "$id value is not a valid URI reference", 71s # "instanceLocation": "", 71s # "keywordLocation": "/$id" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "$id value is not a valid URI reference", 71s # "instanceLocation": "", 71s # "keywordLocation": "/$id" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 44 - integers.json: "type checks" - "beyond int64 lower boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 45 - integers.json: "type checks" - "int64 lower boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 46 - integers.json: "type checks" - "beyond int32 lower boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 47 - integers.json: "type checks" - "int32 lower boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 48 - integers.json: "type checks" - "zero" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 49 - integers.json: "type checks" - "int32 upper boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 50 - integers.json: "type checks" - "beyond int32 upper boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 51 - integers.json: "type checks" - "upper int64 boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 52 - integers.json: "type checks" - "beyond int64 upper boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 53 - integers.json: "int32 range checks" - "beyond lower boundary" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than -2147483648", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than -2147483648", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 54 - integers.json: "int32 range checks" - "lower boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 55 - integers.json: "int32 range checks" - "zero" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 56 - integers.json: "int32 range checks" - "upper boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 57 - integers.json: "int32 range checks" - "beyond upper boundary" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2147483647", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2147483647", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 58 - integers.json: "int64 range checks" - "beyond lower boundary" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than -9223372036854775808", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than -9223372036854775808", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 59 - integers.json: "int64 range checks" - "lower boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 60 - integers.json: "int64 range checks" - "zero" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 61 - integers.json: "int64 range checks" - "upper boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 62 - integers.json: "int64 range checks" - "beyond upper boundary" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 9223372036854775807", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 9223372036854775807", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 63 - integers.json: "equality checks" - "beyond int64 lower boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 64 - integers.json: "equality checks" - "int64 lower boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 65 - integers.json: "equality checks" - "beyond int32 lower boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 66 - integers.json: "equality checks" - "int32 lower boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 67 - integers.json: "equality checks" - "zero" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 68 - integers.json: "equality checks" - "one" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/enum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/enum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 69 - integers.json: "equality checks" - "int32 upper boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 70 - integers.json: "equality checks" - "beyond int32 upper boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 71 - integers.json: "equality checks" - "int64 upper boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 72 - integers.json: "equality checks" - "beyond int64 upper boundary" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s # 71s ok 73 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 74 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 75 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 76 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 77 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 78 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 79 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 80 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 81 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 82 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 83 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 84 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 85 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 86 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 87 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 88 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 89 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 90 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 91 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 92 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 93 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 94 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 95 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 96 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 97 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 98 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 99 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 100 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 101 - keyword-independence.json: "items + maximum" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 102 - keyword-independence.json: "items + maximum" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 103 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 104 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 105 - keyword-independence.json: "items + minimum" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 106 - keyword-independence.json: "items + minimum" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 107 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 108 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 109 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 110 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 111 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 112 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 113 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 114 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 115 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 116 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 117 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 118 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 119 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 120 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 121 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 122 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 123 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 124 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 125 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 126 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 127 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 128 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 129 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 130 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 131 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 132 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 133 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 134 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 135 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 136 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 137 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 138 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 139 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 140 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 141 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 142 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 143 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 144 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 145 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 146 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 147 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 148 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 149 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 150 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 151 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 152 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 153 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 154 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 155 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 156 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 157 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 158 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 159 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 160 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 161 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 162 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 163 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 164 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 165 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 166 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 167 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 168 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 169 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 170 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 171 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 172 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 173 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 174 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 175 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 176 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 177 - keyword-independence.json: "contains + dependencies" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 178 - keyword-independence.json: "contains + dependencies" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 179 - keyword-independence.json: "contains + dependencies" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 180 - keyword-independence.json: "contains + dependencies" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 181 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 182 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 183 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 184 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 185 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 186 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 187 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 188 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 189 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 190 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 191 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 192 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 193 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 194 - keyword-independence.json: "contains + properties" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 195 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 196 - keyword-independence.json: "contains + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 197 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 198 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 199 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 200 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 201 - keyword-independence.json: "contains + required" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 202 - keyword-independence.json: "contains + required" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 203 - keyword-independence.json: "contains + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 204 - keyword-independence.json: "contains + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 205 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 206 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 207 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 208 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 209 - keyword-independence.json: "dependencies + items" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 210 - keyword-independence.json: "dependencies + items" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 211 - keyword-independence.json: "dependencies + items" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 212 - keyword-independence.json: "dependencies + items" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 213 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 214 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 215 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 216 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 217 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 218 - keyword-independence.json: "items + minProperties" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 219 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 220 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 221 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 222 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 223 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 224 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 225 - keyword-independence.json: "items + properties" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 226 - keyword-independence.json: "items + properties" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 227 - keyword-independence.json: "items + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 228 - keyword-independence.json: "items + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 229 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 230 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 231 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 232 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 233 - keyword-independence.json: "items + required" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 234 - keyword-independence.json: "items + required" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 235 - keyword-independence.json: "items + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 236 - keyword-independence.json: "items + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 237 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 238 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 239 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 240 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 241 - keyword-independence.json: "dependencies + maxItems" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 242 - keyword-independence.json: "dependencies + maxItems" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 243 - keyword-independence.json: "dependencies + maxItems" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 244 - keyword-independence.json: "dependencies + maxItems" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 245 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 246 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 247 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 248 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 249 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 250 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 251 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 252 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 253 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 254 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 255 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 256 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 257 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 258 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 259 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 260 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 261 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 262 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 263 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 264 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 265 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 266 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 267 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 268 - keyword-independence.json: "maxItems + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 269 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 270 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 271 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 272 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 273 - keyword-independence.json: "dependencies + minItems" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 274 - keyword-independence.json: "dependencies + minItems" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 275 - keyword-independence.json: "dependencies + minItems" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 276 - keyword-independence.json: "dependencies + minItems" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 277 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 278 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 279 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 280 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 281 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 282 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 283 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 284 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 285 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 286 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 287 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 288 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 289 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 290 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 291 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 292 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 293 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 294 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 295 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 296 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 297 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 298 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 299 - keyword-independence.json: "minItems + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 300 - keyword-independence.json: "minItems + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 301 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 302 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 303 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 304 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 305 - keyword-independence.json: "dependencies + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 306 - keyword-independence.json: "dependencies + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 307 - keyword-independence.json: "dependencies + uniqueItems" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 308 - keyword-independence.json: "dependencies + uniqueItems" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 309 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 310 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 311 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 312 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 313 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 314 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 315 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 316 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 317 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 318 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 319 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 320 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 321 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 322 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 323 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 324 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 325 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 326 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 327 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 328 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 329 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 330 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 331 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 332 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 333 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 334 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 335 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 336 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 337 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 338 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 339 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 340 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 341 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is not valid against any item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/contains" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 342 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 343 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 344 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 345 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 346 - keyword-independence.json: "items + maxLength" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 347 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 348 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 349 - keyword-independence.json: "items + minLength" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 350 - keyword-independence.json: "items + minLength" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 351 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 352 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 353 - keyword-independence.json: "items + pattern" - "array, items invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "item not permitted", 71s # "instanceLocation": "/0", 71s # "keywordLocation": "/items/0" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 354 - keyword-independence.json: "items + pattern" - "array, items valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 355 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 356 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 357 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 358 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 359 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 360 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 361 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 362 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 363 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 364 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 365 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has more than 1 item", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 366 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 367 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 368 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 369 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 370 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 371 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 372 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 373 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 374 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 375 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 376 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 377 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "array has fewer than 2 items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 378 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 379 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 380 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 381 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 382 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 383 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 384 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 385 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 386 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 387 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 388 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 389 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "items at indices 0 and 1 are not unique", 71s # "instanceLocation": "", 71s # "keywordLocation": "/uniqueItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 390 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 391 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 392 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 393 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 394 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 395 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 396 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 397 - keyword-independence.json: "dependencies + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 398 - keyword-independence.json: "dependencies + exclusiveMaximum" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 399 - keyword-independence.json: "dependencies + exclusiveMaximum" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 400 - keyword-independence.json: "dependencies + exclusiveMaximum" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 401 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 402 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 403 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 404 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 405 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 406 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 407 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 408 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 409 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 410 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 411 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 412 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 413 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 414 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 415 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 416 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 417 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 418 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 419 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 420 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 421 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 422 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 423 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 424 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 425 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 426 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 427 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 428 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 429 - keyword-independence.json: "dependencies + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 430 - keyword-independence.json: "dependencies + exclusiveMinimum" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 431 - keyword-independence.json: "dependencies + exclusiveMinimum" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 432 - keyword-independence.json: "dependencies + exclusiveMinimum" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 433 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 434 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 435 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 436 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 437 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 438 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 439 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 440 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 441 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 442 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 443 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 444 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 445 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 446 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 447 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 448 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 449 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 450 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 451 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 452 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 453 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 454 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 455 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 456 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 457 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 458 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 459 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 460 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 461 - keyword-independence.json: "dependencies + maximum" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 462 - keyword-independence.json: "dependencies + maximum" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 463 - keyword-independence.json: "dependencies + maximum" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 464 - keyword-independence.json: "dependencies + maximum" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 465 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 466 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 467 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 468 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 469 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 470 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 471 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 472 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 473 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 474 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 475 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 476 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 477 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 478 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 479 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 480 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 481 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 482 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 483 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 484 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 485 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 486 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 487 - keyword-independence.json: "maximum + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 488 - keyword-independence.json: "maximum + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 489 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 490 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 491 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 492 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 493 - keyword-independence.json: "dependencies + minimum" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 494 - keyword-independence.json: "dependencies + minimum" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 495 - keyword-independence.json: "dependencies + minimum" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 496 - keyword-independence.json: "dependencies + minimum" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 497 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 498 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 499 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 500 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 501 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 502 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 503 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 504 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 505 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 506 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 507 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 508 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 509 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 510 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 511 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 512 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 513 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 514 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 515 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 516 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 517 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 518 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 519 - keyword-independence.json: "minimum + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 520 - keyword-independence.json: "minimum + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 521 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 522 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 523 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 524 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 525 - keyword-independence.json: "dependencies + multipleOf" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 526 - keyword-independence.json: "dependencies + multipleOf" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 527 - keyword-independence.json: "dependencies + multipleOf" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 528 - keyword-independence.json: "dependencies + multipleOf" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 529 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 530 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 531 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 532 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 533 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 534 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 535 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 536 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 537 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 538 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 539 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 540 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 541 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 542 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 543 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 544 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 545 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 546 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 547 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 548 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 549 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 550 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 551 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 552 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 553 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 554 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 555 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 556 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 557 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 558 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 559 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 560 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 561 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMaximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 562 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 563 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 564 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 565 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 566 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 567 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 568 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 569 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 570 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 571 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 572 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 573 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than or equal to 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/exclusiveMinimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 574 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 575 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 576 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 577 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 578 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 579 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 580 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 581 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 582 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 583 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 584 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 585 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maximum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 586 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 587 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 588 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 589 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 590 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 591 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 592 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 593 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 594 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 595 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 596 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 597 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minimum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 598 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 599 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 600 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 601 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 602 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 603 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 604 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 605 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 606 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 607 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 608 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 609 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/multipleOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 610 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 611 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 612 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 613 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 614 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 615 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 616 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 617 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 618 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 619 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 620 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 621 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 622 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 623 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 624 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 625 - keyword-independence.json: "dependencies + maxLength" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 626 - keyword-independence.json: "dependencies + maxLength" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 627 - keyword-independence.json: "dependencies + maxLength" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 628 - keyword-independence.json: "dependencies + maxLength" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 629 - keyword-independence.json: "dependencies + minLength" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 630 - keyword-independence.json: "dependencies + minLength" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 631 - keyword-independence.json: "dependencies + minLength" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 632 - keyword-independence.json: "dependencies + minLength" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 633 - keyword-independence.json: "dependencies + pattern" - "object, dependencies invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies/x" 71s # }, 71s # { 71s # "error": "not all dependencies are satisfied", 71s # "instanceLocation": "", 71s # "keywordLocation": "/dependencies" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 634 - keyword-independence.json: "dependencies + pattern" - "object, dependencies valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 635 - keyword-independence.json: "dependencies + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 636 - keyword-independence.json: "dependencies + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 637 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 638 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 639 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 640 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 641 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 642 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 643 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 644 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 645 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has more than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 646 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 647 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 648 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 649 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 650 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 651 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 652 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 653 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 654 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 655 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 656 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 657 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object has fewer than 1 property", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 658 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 659 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 660 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 661 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 662 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 663 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 664 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 665 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 666 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 667 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 668 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 669 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/no", 71s # "keywordLocation": "/patternProperties/no" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 670 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 671 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 672 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 673 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 674 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 675 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 676 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 677 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 678 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 679 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 680 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 681 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/properties/x" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 682 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 683 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 684 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 685 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 686 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 687 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 688 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 689 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 690 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 691 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 692 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 693 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "subschema is false", 71s # "instanceLocation": "/x", 71s # "keywordLocation": "/propertyNames" 71s # }, 71s # { 71s # "error": "not all property names are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/propertyNames" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 694 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 695 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 696 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 697 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 698 - keyword-independence.json: "maxLength + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 699 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is greater than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/maxLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 700 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 701 - keyword-independence.json: "minLength + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 702 - keyword-independence.json: "minLength + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 703 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "length is less than 2", 71s # "instanceLocation": "", 71s # "keywordLocation": "/minLength" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 704 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 705 - keyword-independence.json: "pattern + required" - "object, required invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "object is missing property: x", 71s # "instanceLocation": "", 71s # "keywordLocation": "/required" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 706 - keyword-independence.json: "pattern + required" - "object, required valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 707 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "pattern does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/pattern" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 708 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s # 71s ok 709 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "/const_string", 71s # "keywordLocation": "/properties/const_string/const" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "/const_string", 71s # "keywordLocation": "/properties/const_string/const" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 710 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 711 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 712 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "/const_number", 71s # "keywordLocation": "/properties/const_number/const" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "/const_number", 71s # "keywordLocation": "/properties/const_number/const" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 713 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "/enum_string", 71s # "keywordLocation": "/properties/enum_string/enum" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "/enum_string", 71s # "keywordLocation": "/properties/enum_string/enum" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 714 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 715 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 716 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "/enum_number", 71s # "keywordLocation": "/properties/enum_number/enum" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "/enum_number", 71s # "keywordLocation": "/properties/enum_number/enum" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 717 - not-an-anchor.json: "object that is not a schema containing an $anchor property" - "skip traversing definition for a valid result" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 718 - not-an-anchor.json: "object that is not a schema containing an $anchor property" - "const at const_not_anchor does not match" { 71s # result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else/$ref/const" 71s # }, 71s # { 71s # "error": "subschema is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else/$ref/const" 71s # }, 71s # { 71s # "error": "subschema is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 719 - not-an-id.json: "object that is not a schema containing an $id property" - "skip traversing definition for a valid result" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 720 - not-an-id.json: "object that is not a schema containing an $id property" - "const at const_not_id does not match" { 71s # result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else/$ref/const" 71s # }, 71s # { 71s # "error": "subschema is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else/$ref/const" 71s # }, 71s # { 71s # "error": "subschema is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/else" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 721 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination" - "data is valid against first definition" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 722 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination" - "data is invalid against first definition" { 71s # result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 71s # "error": "value is greater than 10", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf/0/$ref/maximum" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "/ref-and-id2/base.json#/allOf", 71s # "error": "subschema 0 is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 71s # "error": "value is greater than 10", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf/0/$ref/maximum" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "/ref-and-id2/base.json#/allOf", 71s # "error": "subschema 0 is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 723 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 724 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 71s # result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 71s # "error": "value is greater than 10", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf/0/$ref/maximum" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "/ref1/base.json#/allOf", 71s # "error": "subschema 0 is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 71s # "error": "value is greater than 10", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf/0/$ref/maximum" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "/ref1/base.json#/allOf", 71s # "error": "subschema 0 is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 725 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 726 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 71s # result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "/ref2/base.json#/definitions/bigint/maximum", 71s # "error": "value is greater than 10", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf/0/$ref/maximum" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "/ref2/base.json#/allOf", 71s # "error": "subschema 0 is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "/ref2/base.json#/definitions/bigint/maximum", 71s # "error": "value is greater than 10", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf/0/$ref/maximum" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "/ref2/base.json#/allOf", 71s # "error": "subschema 0 is not valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/allOf" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 727 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/enum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value does not match", 71s # "instanceLocation": "", 71s # "keywordLocation": "/enum" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 728 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 729 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "$ref value is not a valid URI reference", 71s # "instanceLocation": "", 71s # "keywordLocation": "/definitions/foo/$ref" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "$ref value is not a valid URI reference", 71s # "instanceLocation": "", 71s # "keywordLocation": "/definitions/foo/$ref" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 730 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "$ref value is not a valid URI reference", 71s # "instanceLocation": "", 71s # "keywordLocation": "/definitions/foo/$ref" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "$ref value is not a valid URI reference", 71s # "instanceLocation": "", 71s # "keywordLocation": "/definitions/foo/$ref" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 731 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 732 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 71s # "error": "got string, not integer", 71s # "instanceLocation": "/list/0", 71s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 71s # "error": "subschema is not valid against all items", 71s # "instanceLocation": "/list", 71s # "keywordLocation": "/properties/list/$ref/items" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 71s # "error": "got string, not integer", 71s # "instanceLocation": "/list/0", 71s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 71s # "error": "subschema is not valid against all items", 71s # "instanceLocation": "/list", 71s # "keywordLocation": "/properties/list/$ref/items" 71s # }, 71s # { 71s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 733 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 734 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/1", 71s # "keywordLocation": "/items/multipleOf" 71s # }, 71s # { 71s # "error": "subschema is not valid against all items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/1", 71s # "keywordLocation": "/items/multipleOf" 71s # }, 71s # { 71s # "error": "subschema is not valid against all items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 735 - short-circuit.json: "items (array form) does not improperly short-circuit" - "single item is valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 736 - short-circuit.json: "items (array form) does not improperly short-circuit" - "second item is invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/1", 71s # "keywordLocation": "/items/1/multipleOf" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/1", 71s # "keywordLocation": "/items/1/multipleOf" 71s # }, 71s # { 71s # "error": "not all items are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/items" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 737 - short-circuit.json: "additionalItems does not improperly short-circuit" - "single additional item is valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 738 - short-circuit.json: "additionalItems does not improperly short-circuit" - "second additional item is invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/2", 71s # "keywordLocation": "/additionalItems/multipleOf" 71s # }, 71s # { 71s # "error": "subschema is not valid against all additional items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/2", 71s # "keywordLocation": "/additionalItems/multipleOf" 71s # }, 71s # { 71s # "error": "subschema is not valid against all additional items", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalItems" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 739 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 740 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/beta", 71s # "keywordLocation": "/properties/beta/multipleOf" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/beta", 71s # "keywordLocation": "/properties/beta/multipleOf" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 741 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 742 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/beta", 71s # "keywordLocation": "/properties/beta" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/beta", 71s # "keywordLocation": "/properties/beta" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/properties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 743 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 744 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/beta", 71s # "keywordLocation": "/patternProperties/^b/multipleOf" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/beta", 71s # "keywordLocation": "/patternProperties/^b/multipleOf" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 745 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 746 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/beta", 71s # "keywordLocation": "/patternProperties/^b" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "property not permitted", 71s # "instanceLocation": "/beta", 71s # "keywordLocation": "/patternProperties/^b" 71s # }, 71s # { 71s # "error": "not all properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/patternProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 747 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 748 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/beta", 71s # "keywordLocation": "/additionalProperties/multipleOf" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "value is not a multiple of 2", 71s # "instanceLocation": "/beta", 71s # "keywordLocation": "/additionalProperties/multipleOf" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s # 71s ok 749 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 750 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "got string, not number", 71s # "instanceLocation": "", 71s # "keywordLocation": "/type" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "got string, not number", 71s # "instanceLocation": "", 71s # "keywordLocation": "/type" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 751 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "got object, not number", 71s # "instanceLocation": "", 71s # "keywordLocation": "/type" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "got object, not number", 71s # "instanceLocation": "", 71s # "keywordLocation": "/type" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 752 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "got array, not number", 71s # "instanceLocation": "", 71s # "keywordLocation": "/type" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "got array, not number", 71s # "instanceLocation": "", 71s # "keywordLocation": "/type" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 753 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "match" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 754 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive match" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 755 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "mismatch" { 71s # result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/bar", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s # short-circuited result: { 71s # "errors": [ 71s # { 71s # "error": "additional property not permitted", 71s # "instanceLocation": "/bar", 71s # "keywordLocation": "/additionalProperties" 71s # }, 71s # { 71s # "error": "not all additional properties are valid", 71s # "instanceLocation": "", 71s # "keywordLocation": "/additionalProperties" 71s # } 71s # ], 71s # "valid": false 71s # } 71s ok 1 - test passes: data is valid: false 71s 1..1 71s } 71s ok 756 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive mismatch (but $dynamicRef is ignored)" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s # 71s ok 757 - vocabulary.json: "valid $vocabulary: everything is valid" - "a valid $vocabulary value" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 758 - vocabulary.json: "wrong specification version: but this is draft7" - "invalid $vocabulary value: wrong specification version" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s ok 759 - vocabulary.json: "but this is draft7" - "invalid $vocabulary value: unknown URI" { 71s # result: { 71s # "valid": true 71s # } 71s # short-circuited result: { 71s # "valid": true 71s # } 71s ok 1 - test passes: data is valid: true 71s 1..1 71s } 71s # 71s # generated with: Test::JSON::Schema::Acceptance 1.029 71s # specification version: draft7 71s # using custom test directory: t/additional-tests-draft7 71s # optional tests included: yes 71s # 71s # filename pass todo-fail fail 71s # --------------------------------------------------------------- 71s # badRef.json 3 0 0 71s # faux-buggy-schemas.json 2 0 0 71s # format-date-time.json 4 0 0 71s # format-date.json 1 0 0 71s # format-ipv4.json 4 0 0 71s # format-relative-json-pointer.json 7 0 0 71s # format-time.json 13 0 0 71s # id.json 9 0 0 71s # integers.json 29 0 0 71s # keyword-independence.json 636 0 0 71s # loose-types-const-enum.json 8 0 0 71s # not-an-anchor.json 2 0 0 71s # not-an-id.json 2 0 0 71s # ref-and-id.json 2 0 0 71s # ref.json 10 0 0 71s # short-circuit.json 16 0 0 71s # unknownKeyword.json 8 0 0 71s # vocabulary.json 3 0 0 71s # --------------------------------------------------------------- 71s # TOTAL 759 0 0 71s # 71s # Congratulations, all non-optional tests are passing! 71s # 71s ok 760 - no leaks in the main evaluator object 71s ok 761 - no leaks in the short-circuiting evaluator object 71s ok 762 - got unsupported keyword warnings 71s 1..762 71s ok 72s t/annotations.t ......................... 72s # Subtest: draft7 72s ok 1 - user cannot enable annotations for draft7 72s ok 2 - user cannot enable annotations for draft7 even as an override 72s 1..2 72s ok 1 - draft7 72s # Subtest: allOf 72s ok 1 - evaluation of the allOf keyword fails 72s ok 2 - failing allOf: state is correct after evaluating 72s ok 3 - evaluation of the allOf keyword succeeds 72s ok 4 - passing allOf: state is correct after evaluating 72s ok 5 - annotation collection can be turned off in evaluate() 72s ok 6 - ...but the value is still true on the object 72s ok 7 - collect_annotations defaults to false 72s ok 8 - annotation collection can be turned on in evaluate() also 72s 1..8 72s ok 2 - allOf 72s # Subtest: oneOf 72s ok 1 - evaluation of the oneOf keyword fails 72s ok 2 - failing oneOf: state is correct after evaluating 72s ok 3 - evaluation of the oneOf keyword succeeds 72s ok 4 - passing oneOf: state is correct after evaluating 72s 1..4 72s ok 3 - oneOf 72s # Subtest: not 72s ok 1 - evaluation of the not keyword fails 72s ok 2 - failing not: state is correct after evaluating 72s ok 3 - evaluation of the not keyword fails 72s ok 4 - failing not: state is correct after evaluating (annotations will be ultimately discarded) 72s ok 5 - evaluation of the not keyword succeeds 72s ok 6 - passing not: state is correct after evaluating 72s ok 7 - annotations are still collected inside a "not", otherwise the unevaluatedProperties would have returned false 72s 1..7 72s ok 4 - not 72s # Subtest: prefixItems 72s ok 1 - no items means that "prefixItems" succeeds 72s ok 2 - no items: no annotation is produced by prefixItems 72s ok 3 - one item 72s ok 4 - passing prefixItems: one item is annotated 72s ok 5 - two items, one failing 72s ok 6 - failing prefixItems still collects annotations 72s 1..6 72s ok 5 - prefixItems 72s # Subtest: schema-items 72s ok 1 - no items means that "items" succeeds 72s ok 2 - no items: no annotation is produced by items 72s ok 3 - one item 72s ok 4 - passing items: one item is annotated 72s ok 5 - two items, one failing 72s ok 6 - failing items still collects annotations 72s 1..6 72s ok 6 - schema-items 72s # Subtest: additionalItems 72s ok 1 - no items means that "additionalItems" succeeds 72s ok 2 - no items: no annotation is produced by additionaltems 72s ok 3 - one item 72s ok 4 - additionalItems does nothing without items 72s 1..4 72s ok 7 - additionalItems 72s # Subtest: properties 72s ok 1 - no items means that "properties" succeeds 72s ok 2 - no properties: annotation is still produced by properties 72s ok 3 - one property 72s ok 4 - passing properties: one property is annotated 72s ok 5 - two properties, one failing 72s ok 6 - failing properties still collects annotations 72s 1..6 72s ok 8 - properties 72s # Subtest: patternProperties 72s ok 1 - no items means that "patternProperties" succeeds 72s ok 2 - no pProperties: annotation is still produced by patternProperties 72s ok 3 - one property 72s ok 4 - passing properties: one property is annotated 72s ok 5 - two properties, one failing 72s ok 6 - failing patternProperties still collects annotations 72s 1..6 72s ok 9 - patternProperties 72s # Subtest: additionalProperties 72s ok 1 - no items means that "additionalProperties" succeeds 72s ok 2 - no properties: no annotation is produced by additionalProperties 72s ok 3 - one property 72s ok 4 - passing additionalProperties: one property is annotated 72s ok 5 - two properties, one failing 72s ok 6 - failing properties still collects annotations 72s 1..6 72s ok 10 - additionalProperties 72s # Subtest: unevaluatedProperties 72s ok 1 - no items means that "unevaluatedProperties" succeeds 72s ok 2 - no properties: no annotation is produced by unevaluatedProperties 72s ok 3 - one property 72s ok 4 - passing unevaluatedProperties: one property is annotated 72s ok 5 - two properties, one failing 72s ok 6 - failing unevaluatedProperties still collects annotations 72s 1..6 72s ok 11 - unevaluatedProperties 72s # Subtest: collect_annotations and unevaluated keywords 72s ok 1 - when "collect_annotations" is explicitly set to false, unevaluatedItems can still be used (valid result, no annotations in result) 72s ok 2 - when "collect_annotations" is explicitly set to false, unevaluatedItems can still be used (invalid result) 72s ok 3 - when "collect_annotations" is explicitly set to false, unevaluatedProperties can still be used (valid result, no annotations) 72s ok 4 - when "collect_annotations" is explicitly set to false, unevaluatedProperties can still be used (invalid result) 72s ok 5 - when "collect_annotations" is explicitly set to false, unevaluatedProperties still be used, even in other documents (valid result) 72s ok 6 - when "collect_annotations" is explicitly set to false, unevaluatedProperties still be used, even in other documents (invalid result) 72s ok 7 - when "collect_annotations" is set to true, unevaluatedItems works, and annotations are returned 72s ok 8 - when "collect_annotations" is set to true, unevaluatedProperties passes, and annotations are returned 72s ok 9 - when "collect_annotations" is not set, unevaluatedItems still works, but annotations are not returned 72s ok 10 - when "collect_annotations" is not set, unevaluatedProperties still works, but annotations are not returned 72s ok 11 - ... still works when unevaluated keywords are in a separate document 72s ok 12 - items.json does not need collect_annotations => 1 to evaluate itself 72s ok 13 - properties.json does not need collect_annotations => 1 to evaluate itself 72s ok 14 - referenced schemas still produce annotations internally when needed, even when not required to evaluate themselves in isolation 72s 1..14 72s ok 12 - collect_annotations and unevaluated keywords 72s # Subtest: annotate unknown keywords 72s ok 1 - no annotations even when collect_annotations is false 72s ok 2 - unknown keywords are collected as annotations 72s ok 3 - "unknown" keyword is set on the annotation objects for unknown keywords 72s ok 4 - no annotations from unknown keywords in draft2019-09 72s 1..4 72s ok 13 - annotate unknown keywords 72s # Subtest: items + additionalItems, prefixItems + items 72s ok 1 - schema-based items + additionalItems 72s ok 2 - prefixItems + schema-based items 72s 1..2 72s ok 14 - items + additionalItems, prefixItems + items 72s 1..14 72s ok 72s t/boolean-data.t ........................ 72s # Subtest: strict booleans (default) 72s ok 1 - in data, bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ) is a boolean 72s ok 2 - in data, bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) is a boolean 72s ok 3 - correct error generated from type for undef 72s ok 4 - correct error generated from type for 0 72s ok 5 - correct error generated from type for 1 72s ok 6 - correct error generated from type for '0' 72s ok 7 - correct error generated from type for '1' 72s ok 8 - correct error generated from type for 'false' 72s ok 9 - correct error generated from type for 'true' 72s ok 10 - correct error generated from type for \0 72s ok 11 - correct error generated from type for \1 72s ok 12 - in data, undef not is a boolean 72s ok 13 - in data, 0 not is a boolean 72s ok 14 - in data, 1 not is a boolean 72s ok 15 - in data, '0' not is a boolean 72s ok 16 - in data, '1' not is a boolean 72s ok 17 - in data, 'false' not is a boolean 72s ok 18 - in data, 'true' not is a boolean 72s ok 19 - in data, \0 not is a boolean 72s ok 20 - in data, \1 not is a boolean 72s 1..20 72s ok 1 - strict booleans (default) 72s # Subtest: scalarref_booleans = 1 72s ok 1 - in data, bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ) is a boolean 72s ok 2 - in data, bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) is a boolean 72s ok 3 - in data, \0 is a boolean 72s ok 4 - in data, \1 is a boolean 72s ok 5 - correct error generated from type for ['null',undef] 72s ok 6 - correct error generated from type for ['integer',0] 72s ok 7 - correct error generated from type for ['integer',1] 72s ok 8 - correct error generated from type for ['string','0'] 72s ok 9 - correct error generated from type for ['string','1'] 72s ok 10 - correct error generated from type for ['string','false'] 72s ok 11 - correct error generated from type for ['string','true'] 72s ok 12 - items are all considered unique when types differ, even when perl treats them similarly 72s ok 13 - scalarrefs compare as identical to their counterpart booleans 72s ok 14 - scalarrefs compare as identical to their counterpart booleans 72s ok 15 - scalarrefs compare as identical to their counterpart booleans 72s ok 16 - scalarrefs compare as identical to their counterpart booleans 72s 1..16 72s ok 2 - scalarref_booleans = 1 72s 1..2 72s ok 72s t/boolean-schemas.t ..................... 72s ok 1 - schema: false evaluates to: false 72s ok 2 - invalid result structure looks correct 72s ok 3 - no exceptions in evaluate 72s ok 4 - schema: true evaluates to: true 72s ok 5 - invalid result structure looks correct 72s ok 6 - no exceptions in evaluate 72s ok 7 - schema: {} evaluates to: true 72s ok 8 - invalid result structure looks correct 72s ok 9 - no exceptions in evaluate 72s ok 10 - schema: 0 evaluates to: false 72s ok 11 - invalid result structure looks correct 72s ok 12 - no exceptions in evaluate 72s ok 13 - schema: 1 evaluates to: false 72s ok 14 - invalid result structure looks correct 72s ok 15 - no exceptions in evaluate 72s ok 16 - schema: false evaluates to: false 72s ok 17 - invalid result structure looks correct 72s ok 18 - no exceptions in evaluate 72s ok 19 - schema: true evaluates to: false 72s ok 20 - invalid result structure looks correct 72s ok 21 - no exceptions in evaluate 72s ok 22 - invalid schema type results in error 72s ok 23 - scalarref for schema results in error, even when scalarref_booleans is true 72s 1..23 72s ok 73s t/cached-metaschemas.t .................. 73s # Subtest: load cached metaschema 73s ok 1 - this resource is not yet known 73s ok 2 - loaded metaschema from sharedir cache 73s ok 3 - this resource is now in the resource index 73s 1..3 73s ok 1 - load cached metaschema 73s # Subtest: resource collision with cached metaschema 73s ok 1 - cannot introduce another schema whose id collides with a cached schema, even if it isn't loaded yet 73s 1..1 73s ok 2 - resource collision with cached metaschema 73s 1..2 73s ok 73s t/callbacks.t ........................... 73s # Subtest: evaluation callbacks 73s ok 1 - evaluation was successful 73s ok 2 - identified all data paths where a $ref was used 73s ok 3 - evaluation was not successful 73s ok 4 - no callbacks on failure: innermost $ref failed, so all other $refs failed too 73s ok 5 - evaluation was successful 73s ok 6 - successful subschemas have callbacks called, but not failed subschemas 73s 1..6 73s ok 1 - evaluation callbacks 73s # Subtest: callbacks for keywords without eval subs 73s ok 1 - evaluation was successful 73s ok 2 - callbacks are triggered for keywords even when they lack evaluation subs 73s 1..2 73s ok 2 - callbacks for keywords without eval subs 73s # Subtest: callbacks that produce errors 73s ok 1 - result object contains the callback error, and the other errors 73s ok 2 - result object contains the callback error, and short-circuits execution 73s 1..2 73s ok 3 - callbacks that produce errors 73s 1..3 73s ok 73s t/content-encoding.t .................... 73s # Subtest: unrecognized encoding formats do not result in errors, when not asserting 73s ok 1 - in evaluate(), annotations are collected and no validation is performed 73s 1..1 73s ok 1 - unrecognized encoding formats do not result in errors, when not asserting 73s # Subtest: media_type and encoding handlers 73s ok 1 - upper-cased names are not accepted 73s ok 2 - application/json media_type decoder 73s ok 3 - */* has no default match 73s ok 4 - default text/plain media_type decoder 73s ok 5 - getter uses the casefolded name 73s ok 6 - getter matches to wildcard entries 73s ok 7 - getter uses new override entry for wildcard 73s ok 8 - getter prefers case-insensitive matches to wildcard entries 73s ok 9 - getter matches to wildcard entries 73s ok 10 - text/* matches itself 73s ok 11 - getter still prefers case-insensitive matches to wildcard entries 73s ok 12 - text/* is preferred to */* 73s ok 13 - */* matches */*, once defined 73s ok 14 - */* is returned as a last resort 73s ok 15 - application/x-www-form-urlencoded happy path with unicode 73s ok 16 - application/x-ndjson happy path with unicode 73s ok 17 - application/x-ndjson dies with line number of the bad data 73s ok 18 - base64 encoding decoder + application/json media_type decoder 73s ok 19 - base64url encoding decoder + application/json media_type decoder 73s 1..19 73s ok 2 - media_type and encoding handlers 73s # Subtest: draft2020-12 assertions 73s ok 1 - under the current spec version, content* keywords are not assertions 73s ok 2 - contentEncoding first decodes the string, erroring if it can't 73s ok 3 - then contentMediaType parses the decoded string, erroring if it can't, and does not continue with the schema 73s ok 4 - contentSchema evaluates the decoded data 73s ok 5 - null data is handled properly 73s ok 6 - contentSchema successfully evaluates the decoded data 73s 1..6 73s ok 3 - draft2020-12 assertions 73s # Subtest: draft7 assertions 73s ok 1 - in draft7, assertion behaviour is the default 73s ok 2 - in draft7, then contentMediaType parses the decoded string, erroring if it can't, and does not continue with the schema 73s ok 3 - under draft7, content* are assertions by default, but contentSchema does not exist 73s 1..3 73s ok 4 - draft7 assertions 73s # Subtest: more assertions 73s ok 1 - evaluation aborts with an unrecognized contentEncoding 73s ok 2 - evaluation aborts with an unrecognized contentMediaType 73s 1..2 73s ok 5 - more assertions 73s # Subtest: use of an absolute URI and different dialect within contentSchema 73s ok 1 - evaluation of the subschema correctly uses the new $id and $schema 73s 1..1 73s ok 6 - use of an absolute URI and different dialect within contentSchema 73s 1..6 73s ok 74s t/dialects.t ............................ 74s # Subtest: invalid use of the $schema keyword 74s ok 1 - $schema can only appear at the root of a schema, when there is no canonical URI 74s ok 2 - $schema can only appear where the canonical URI has no fragment, when there is a canonical URI 74s ok 3 - this is still not a resource root, even in a $ref target 74s 1..3 74s ok 1 - invalid use of the $schema keyword 74s # Subtest: defaults without a $schema keyword 74s ok 1 - boolean schema: no $id, no $schema 74s ok 2 - boolean schema: defaults to draft2020-12 without a $schema keyword 74s ok 3 - object schema: no $id, no $schema 74s ok 4 - object schema: defaults to draft2020-12 without a $schema keyword 74s ok 5 - "not" keyword, from the Applicator vocabulary, is traversed at the root level 74s ok 6 - object schema: $id, no $schema 74s ok 7 - named resource defaults to draft2020-12 without a $schema keyword 74s ok 8 - boolean schema: no $id, no $schema 74s ok 9 - boolean schema: specification_version overridden 74s ok 10 - object schema: no $id, no $schema, specification version overridden, other keywords are ignored during traversal 74s ok 11 - object schema: no $id, no $schema, specification version overridden, other keywords are ignored during evaluation 74s ok 12 - object schema: overridden to draft7 74s ok 13 - object schema: $id, no $schema, unrecognized+invalid keywords are ignored during traversal 74s ok 14 - object schema: $id, no $schema 74s ok 15 - object schema: overridden to draft7 and other keywords are ignored 74s 1..15 74s ok 2 - defaults without a $schema keyword 74s # Subtest: behaviour with a $schema keyword 74s ok 1 - object schema: no $id, has $schema, unrecognized+invalid keywords are ignored during traversal 74s ok 2 - object schema: no $id, has $schema, unrecognized keywords are ignored during evaluation 74s ok 3 - semantics can be changed to another draft version 74s ok 4 - schema is accepted with $schema without an empty fragment 74s ok 5 - ..and is still recognized as draft7 74s ok 6 - $id and $schema, unrecognized+invalid keywords are ignored during traversal 74s ok 7 - $id and $schema 74s ok 8 - named resource can be changed to another draft version and other keywords are ignored 74s ok 9 - no $id, specification version overridden twice; unrecognized+invalid keywords are ignored during traversal 74s ok 10 - no $id, specification version overridden twice, other keywords are ignored during evaluation 74s ok 11 - unnamed resource can be changed to another draft version 74s ok 12 - no $id, specification version overridden twice; unrecognized+invalid keywords are ignored during traversal 74s ok 13 - no $id, specification version overridden twice, other keywords are ignored during evaluation 74s ok 14 - unnamed resource can be changed to another draft version 74s 1..14 74s ok 3 - behaviour with a $schema keyword 74s # Subtest: setting or changing specification versions in a single document 74s ok 1 - $schema can appear adjacent to any $id 74s 1..1 74s ok 4 - setting or changing specification versions in a single document 74s # Subtest: changing specification versions across documents 74s ok 1 - no unexpected warnings 74s ok 2 - switching between specification versions is acceptable when crossing document boundaries 74s ok 3 - resources for top level schema 74s ok 4 - resources for subschema 74s ok 5 - no unexpected warnings 74s ok 6 - switching between specification versions is acceptable when crossing document boundaries 74s ok 7 - resources for top level schema 74s ok 8 - resources for subschema 74s 1..8 74s ok 5 - changing specification versions across documents 74s # Subtest: changing specification versions within documents 74s # no-longer-supported "dependencies" keyword present (at location "https://iam.draft2019-09-3.com"): this should be rewritten as "dependentSchemas" or "dependentRequired" at t/dialects.t line 677. 74s ok 1 - switching between specification versions is acceptable within a document, draft2019-09 -> draft7 74s ok 2 - resources for top level schema 74s ok 3 - resources for subschema 74s # no-longer-supported "dependencies" keyword present (at location "https://iam.draft2020-12-4.com"): this should be rewritten as "dependentSchemas" or "dependentRequired" at t/dialects.t line 781. 74s ok 4 - switching between specification versions is acceptable within a document, draft7 -> draf2020-12 74s ok 5 - resources for top level schema 74s ok 6 - resources for subschema 74s # no-longer-supported "dependencies" keyword present (at location "https://iam.draft2020-12-5.com"): this should be rewritten as "dependentSchemas" or "dependentRequired" at t/dialects.t line 884. 74s ok 7 - switching between specification versions is acceptable within a document, draft2020-12 -> draft4 74s ok 8 - resources for top level schema 74s ok 9 - resources for subschema 74s 1..9 74s ok 6 - changing specification versions within documents 74s # Subtest: $vocabulary syntax 74s ok 1 - $vocabulary syntax checks 74s ok 2 - $vocabulary location check - resource root 74s ok 3 - $vocabulary location check - document root 74s ok 4 - successfully evaluated a metaschema that specifies vocabularies 74s ok 5 - metaschemas are not saved on the resource 74s ok 6 - ..but once we use the schema as a metaschema, 74s ok 7 - ... the vocabulary information is now cached in the evaluator 74s 1..7 74s ok 7 - $vocabulary syntax 74s # Subtest: changing dialects (same specification version) 74s ok 1 - evaluation of the subschema in another document correctly uses the new $id and $schema 74s ok 2 - evaluation of the subschema in the same document via a $ref correctly uses the new $id and $schema 74s ok 3 - evaluation of the subschema in the same document with no $ref correctly uses the new $id and $schema 74s ok 4 - no errors found when traversing a document with a malformed keyword outside the dialect 74s 1..4 74s ok 8 - changing dialects (same specification version) 74s # Subtest: standard metaschemas 74s ok 1 - main metaschema evaluated against its own URI 74s ok 2 - main metaschema evaluated against its own content 74s ok 3 - core metaschema evaluated against the main metaschema URI 74s ok 4 - core metaschema evaluated against its own content 74s 1..4 74s ok 9 - standard metaschemas 74s # Subtest: custom metaschemas, without custom vocabularies 74s ok 1 - document contains correct values 74s ok 2 - specification version detected from standard metaschema URI 74s ok 3 - custom metaschema restricts schemas to objects 74s ok 4 - custom metaschema recurses to standard metaschema 74s ok 5 - objects are acceptable schemas to this metaschema 74s ok 6 - metaschemas without $vocabulary can still be used in the $schema keyword 74s ok 7 - ..and schema uses the correct spec version and vocabularies 74s 1..7 74s ok 10 - custom metaschemas, without custom vocabularies 74s # Subtest: custom metaschemas, with custom vocabularies 74s ok 1 - $schema values must be strings 74s ok 2 - $schema values must be URIs 74s ok 3 - custom metaschemas are okay, but the document must be known 74s ok 4 - $vocabulary location check - document root 74s ok 5 - metaschemas must have an i$id 74s ok 6 - $vocabulary validation that must be deferred until used as a metaschema 74s ok 7 - vocabularies in the metaschema must match the $schema version 74s ok 8 - metaschemas using "$vocabulary" must contain vocabularies 74s ok 9 - metaschemas must contain the Core vocabulary 74s ok 10 - validation succeeds because "minimum" never gets run 74s ok 11 - document contains correct values 74s ok 12 - determined vocabularies to use for this schema 74s 1..12 74s ok 11 - custom metaschemas, with custom vocabularies 74s # Subtest: custom vocabulary classes with add_vocabulary() 74s ok 1 - vocabulary class must exist 74s ok 2 - vocabulary class must implement the role 74s ok 3 - vocabulary class must implement some subs 74s ok 4 - vocabulary() sub in the vocabulary class must return uri => specification_version pairs 74s ok 5 - parse error from bad vocab sub 74s ok 6 - vocabulary() sub in the vocabulary class must contain valid absolute, fragmentless URIs 74s ok 7 - vocabulary() sub in the vocabulary class must reference a known specification version 74s ok 8 - added a vocabulary sub 74s ok 9 - vocabulary was successfully added 74s ok 10 - custom vocabulary class has a conflicting evaluation_order 74s ok 11 - added another vocabulary sub 74s ok 12 - custom vocabulary class used by a custom metaschema used by a schema 74s 1..12 74s ok 12 - custom vocabulary classes with add_vocabulary() 74s # Subtest: $schema points to a boolean schema 74s ok 1 - $schema cannot reference a boolean schema 74s 1..1 74s ok 13 - $schema points to a boolean schema 74s # Subtest: $ref to a different dialect 74s ok 1 - evaluation of the subschema correctly uses the new $id and $schema 74s 1..1 74s ok 14 - $ref to a different dialect 74s 1..14 74s ok 74s t/document.t ............................ 74s # Subtest: boolean document 74s ok 1 - boolean schema with no canonical_uri 74s ok 2 - boolean schema with invalid canonical_uri (fragment) 74s ok 3 - boolean schema with valid canonical_uri 74s 1..3 74s ok 1 - boolean document 74s # Subtest: object document 74s ok 1 - object schema with originally provided uri = '' and no root $id 74s ok 2 - object schema with originally provided uri = '' and no root $id 74s ok 3 - object schema with originally provided uri = '0' and no root $id 74s ok 4 - object schema with originally provided uri = '' and no root $id 74s ok 5 - object schema with originally provided uri = '' and no root $id 74s ok 6 - object schema with originally provided uri = '0' and no root $id 74s ok 7 - object schema with valid canonical_uri, no root $id 74s ok 8 - object schema with originally provided uri = '' and absolute root $id 74s ok 9 - object schema with originally provided uri = '' and absolute root $id 74s ok 10 - object schema with originally provided uri = '' and absolute root $id 74s ok 11 - originally provided uri is not indexed when overridden by an absolute root $id 74s ok 12 - originally provided uri is not indexed when overridden by an absolute root $id 74s ok 13 - originally provided uri is not indexed when overridden by an absolute root $id 74s ok 14 - when canonical_uri provided, the empty uri is not added as a referenceable uri 74s ok 15 - object schema with originally provided uri equal to root $id 74s ok 16 - object schema with canonical_uri and root $id, and additional resource schemas as well 74s ok 17 - relative $id at root is resolved against provided canonical_id 74s ok 18 - relative uri for inner $id 74s ok 19 - no root $id; absolute uri with path in subschema resource 74s ok 20 - no root $id or canonical_uri provided; anchor is indexed at the root 74s ok 21 - canonical_uri provided; empty uri not added as a referenceable uri when an anchor exists 74s ok 22 - absolute uri provided at root; adjacent anchor has the same canonical uri 74s ok 23 - absolute uri provided at root; anchor lower down has its own canonical uri 74s 1..23 74s ok 2 - object document 74s # Subtest: $id and $anchor as properties 74s ok 1 - did not index the $id and $anchor properties as if they were identifier keywords 74s 1..1 74s ok 3 - $id and $anchor as properties 74s # Subtest: $id with an empty fragment 74s ok 1 - $id is stored with the empty fragment stripped 74s 1..1 74s ok 4 - $id with an empty fragment 74s # Subtest: $id with a non-empty fragment 74s ok 1 - did not index the $id with a non-empty fragment, nor use it as the base for other identifiers 74s ok 2 - canonical_uri 74s ok 3 - nothing was indexed 74s 1..3 74s ok 5 - $id with a non-empty fragment 74s # Subtest: $anchor not conforming to syntax 74s ok 1 - did not index an $anchor with invalid characters 74s ok 2 - nothing was indexed 74s ok 3 - did not index a draft2020-12 $anchor with invalid characters, or non-fragment-only $id 74s ok 4 - nothing was indexed 74s ok 5 - did not index a draft2019-09 $anchor with invalid characters, or non-fragment-only $id 74s ok 6 - nothing was indexed 74s ok 7 - did not index a draft6 fragment-only $id with invalid characters, or non-fragment-only $id 74s ok 8 - nothing was indexed 74s ok 9 - did not index a draft7 fragment-only $id with invalid characters, or non-fragment-only $id 74s ok 10 - nothing was indexed 74s ok 11 - did not index a draft4 fragment-only id with invalid characters 74s ok 12 - nothing was indexed 74s ok 13 - no errors 74s ok 14 - can combine a canonical identifier with an anchor in draft4 74s 1..14 74s ok 6 - $anchor not conforming to syntax 74s # Subtest: $schema not conforming to syntax 74s ok 1 - invalid $schema is detected 74s 1..1 74s ok 7 - $schema not conforming to syntax 74s # Subtest: $anchor and $id below an $id that is not at the document root 74s ok 1 - canonical_uri uses the path from the innermost $id, not document root $id 74s 1..1 74s ok 8 - $anchor and $id below an $id that is not at the document root 74s # Subtest: JSON pointer and URI escaping 74s ok 1 - properly escaped special characters in JSON pointers and URIs 74s ok 2 - schema locations are tracked 74s ok 3 - non-schema locations are also tracked 74s ok 4 - schema locations can be queried 74s 1..4 74s ok 9 - JSON pointer and URI escaping 74s # Subtest: resource collisions 74s ok 1 - no collision when adding an identical resource (after resolving with base uri) 74s ok 2 - detected collision between document's initial uri and a subschema's uri 74s ok 3 - detected collision between two subschema uris in a document 74s ok 4 - add first document, resolving resources to a base uri 74s ok 5 - the resource in the second document resolves to the same uri as from the first document 74s ok 6 - ignored "duplicate" uris embedded in non-schemas 74s 1..6 74s ok 10 - resource collisions 74s # Subtest: create document with explicit canonical_uri set to the same as root $id 74s ok 1 - there is one single uri indexed to the document 74s 1..1 74s ok 11 - create document with explicit canonical_uri set to the same as root $id 74s # Subtest: canonical_uri identification from a document with errors 74s ok 1 - error lower down in document does not result in an inner identifier being used as canonical_uri 74s 1..1 74s ok 12 - canonical_uri identification from a document with errors 74s # Subtest: custom metaschema_uri 74s ok 1 - document contains correct values 74s ok 2 - determined vocabularies to use for this schema 74s ok 3 - validation succeeds because "minimum" never gets run 74s ok 4 - can evaluate at a subschema as well, with the same vocabularies 74s ok 5 - schema validates against its metaschema, and "minimum" is ignored 74s ok 6 - no leaks in the evaluator object 74s 1..6 74s ok 13 - custom metaschema_uri 74s # Subtest: multiple uris used for resolution and identification, and original_uri 74s ok 1 - document has correct resources, resolved against the provided base uri 74s ok 2 - evaluator has correct resources, resolved against the provided base uri 74s ok 3 - when evaluating the document using the canonical uri, error locations use the canonical uri 74s ok 4 - when evaluating the document using a retrieval uri, error locations still use the canonical uri 74s ok 5 - same document is added a second time 74s ok 6 - document resources are added using the new base, which appears in their canonical_uri values 74s ok 7 - when evaluating using the first base uri, error locations are relative to the provided base uri 74s ok 8 - when evaluating using the second base uri, error locations are relative to the original evaluation location 74s 1..8 74s ok 14 - multiple uris used for resolution and identification, and original_uri 74s 1..14 74s ok 75s t/equality.t ............................ 75s # Subtest: equality, using inflated data 75s ok 1 - null == null is true 75s ok 2 - error is undefined 75s ok 3 - no unexpected error encountered 75s ok 4 - type of arg 0 was not mutated while making equality check 75s ok 5 - type of arg 1 was not mutated while making equality check 75s # 75s ok 6 - null == false is false 75s ok 7 - two instances differ at the expected place 75s ok 8 - error is correct 75s ok 9 - no unexpected error encountered 75s ok 10 - type of arg 0 was not mutated while making equality check 75s ok 11 - type of arg 1 was not mutated while making equality check 75s # 75s ok 12 - null == true is false 75s ok 13 - two instances differ at the expected place 75s ok 14 - error is correct 75s ok 15 - no unexpected error encountered 75s ok 16 - type of arg 0 was not mutated while making equality check 75s ok 17 - type of arg 1 was not mutated while making equality check 75s # 75s ok 18 - null == 1 is false 75s ok 19 - two instances differ at the expected place 75s ok 20 - error is correct 75s ok 21 - no unexpected error encountered 75s ok 22 - type of arg 0 was not mutated while making equality check 75s ok 23 - type of arg 1 was not mutated while making equality check 75s ok 24 - arg 1 did not gain a POK 75s # 75s ok 25 - null == "1" is false 75s ok 26 - two instances differ at the expected place 75s ok 27 - error is correct 75s ok 28 - no unexpected error encountered 75s ok 29 - type of arg 0 was not mutated while making equality check 75s ok 30 - type of arg 1 was not mutated while making equality check 75s ok 31 - arg 1 did not gain an NOK or IOK 75s # 75s ok 32 - ["a", "b", "c"] == ["a", "b", "c"] is true 75s ok 33 - error is undefined 75s ok 34 - no unexpected error encountered 75s ok 35 - type of arg 0 was not mutated while making equality check 75s ok 36 - type of arg 1 was not mutated while making equality check 75s # 75s ok 37 - ["a", "b", "c"] == ["a", "b"] is false 75s ok 38 - two instances differ at the expected place 75s ok 39 - error is correct 75s ok 40 - no unexpected error encountered 75s ok 41 - type of arg 0 was not mutated while making equality check 75s ok 42 - type of arg 1 was not mutated while making equality check 75s # 75s ok 43 - ["a", "b"] == ["b", "a"] is false 75s ok 44 - two instances differ at the expected place 75s ok 45 - error is correct 75s ok 46 - no unexpected error encountered 75s ok 47 - type of arg 0 was not mutated while making equality check 75s ok 48 - type of arg 1 was not mutated while making equality check 75s # 75s ok 49 - 1 == 1 is true 75s ok 50 - error is undefined 75s ok 51 - no unexpected error encountered 75s ok 52 - type of arg 0 was not mutated while making equality check 75s ok 53 - type of arg 1 was not mutated while making equality check 75s ok 54 - arg 0 did not gain a POK 75s ok 55 - arg 1 did not gain a POK 75s # 75s ok 56 - 1 == 1.0 is true 75s ok 57 - error is undefined 75s ok 58 - no unexpected error encountered 75s ok 59 - type of arg 0 was not mutated while making equality check 75s ok 60 - type of arg 1 was not mutated while making equality check 75s ok 61 - arg 0 did not gain a POK 75s ok 62 - arg 1 did not gain a POK 75s # 75s ok 63 - 1 == "1.0" is false 75s ok 64 - two instances differ at the expected place 75s ok 65 - error is correct 75s ok 66 - no unexpected error encountered 75s ok 67 - type of arg 0 was not mutated while making equality check 75s ok 68 - type of arg 1 was not mutated while making equality check 75s ok 69 - arg 0 did not gain a POK 75s ok 70 - arg 1 did not gain an NOK or IOK 75s # 75s ok 71 - "1.1" == 1.1 is false 75s ok 72 - two instances differ at the expected place 75s ok 73 - error is correct 75s ok 74 - no unexpected error encountered 75s ok 75 - type of arg 0 was not mutated while making equality check 75s ok 76 - type of arg 1 was not mutated while making equality check 75s ok 77 - arg 0 did not gain an NOK or IOK 75s ok 78 - arg 1 did not gain a POK 75s # 75s ok 79 - "1" == 1 is false 75s ok 80 - two instances differ at the expected place 75s ok 81 - error is correct 75s ok 82 - no unexpected error encountered 75s ok 83 - type of arg 0 was not mutated while making equality check 75s ok 84 - type of arg 1 was not mutated while making equality check 75s ok 85 - arg 0 did not gain an NOK or IOK 75s ok 86 - arg 1 did not gain a POK 75s # 75s ok 87 - "1.1" == 1.1 is false 75s ok 88 - two instances differ at the expected place 75s ok 89 - error is correct 75s ok 90 - no unexpected error encountered 75s ok 91 - type of arg 0 was not mutated while making equality check 75s ok 92 - type of arg 1 was not mutated while making equality check 75s ok 93 - arg 0 did not gain an NOK or IOK 75s ok 94 - arg 1 did not gain a POK 75s # 75s ok 95 - [1, 2] == [2, 1] is false 75s ok 96 - two instances differ at the expected place 75s ok 97 - error is correct 75s ok 98 - no unexpected error encountered 75s ok 99 - type of arg 0 was not mutated while making equality check 75s ok 100 - type of arg 1 was not mutated while making equality check 75s # 75s ok 101 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 2} is true 75s ok 102 - error is undefined 75s ok 103 - no unexpected error encountered 75s ok 104 - type of arg 0 was not mutated while making equality check 75s ok 105 - type of arg 1 was not mutated while making equality check 75s # 75s ok 106 - {"a" : 1} == {"a" : 1.0} is true 75s ok 107 - error is undefined 75s ok 108 - no unexpected error encountered 75s ok 109 - type of arg 0 was not mutated while making equality check 75s ok 110 - type of arg 1 was not mutated while making equality check 75s # 75s ok 111 - ["école", "ಠ_ಠ"] == ["école", "ಠ_ಠ"] is true 75s ok 112 - error is undefined 75s ok 113 - no unexpected error encountered 75s ok 114 - type of arg 0 was not mutated while making equality check 75s ok 115 - type of arg 1 was not mutated while making equality check 75s # 75s ok 116 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 3} is false 75s ok 117 - two instances differ at the expected place 75s ok 118 - error is correct 75s ok 119 - no unexpected error encountered 75s ok 120 - type of arg 0 was not mutated while making equality check 75s ok 121 - type of arg 1 was not mutated while making equality check 75s # 75s ok 122 - {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 4}} == {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 5}} is false 75s ok 123 - two instances differ at the expected place 75s ok 124 - error is correct 75s ok 125 - no unexpected error encountered 75s ok 126 - type of arg 0 was not mutated while making equality check 75s ok 127 - type of arg 1 was not mutated while making equality check 75s # 75s ok 128 - [{"a" : 1}] == [{"a" : 1, "b" : 2}] is false 75s ok 129 - two instances differ at the expected place 75s ok 130 - error is correct 75s ok 131 - no unexpected error encountered 75s ok 132 - type of arg 0 was not mutated while making equality check 75s ok 133 - type of arg 1 was not mutated while making equality check 75s # 75s ok 134 - [{"a" : 1}] == [{"b" : 2}] is false 75s ok 135 - two instances differ at the expected place 75s ok 136 - error is correct 75s ok 137 - no unexpected error encountered 75s ok 138 - type of arg 0 was not mutated while making equality check 75s ok 139 - type of arg 1 was not mutated while making equality check 75s # 75s ok 140 - {"foo" : [[0]]} == {"foo" : [[0, 1]]} is false 75s ok 141 - two instances differ at the expected place 75s ok 142 - error is correct 75s ok 143 - no unexpected error encountered 75s ok 144 - type of arg 0 was not mutated while making equality check 75s ok 145 - type of arg 1 was not mutated while making equality check 75s # 75s 1..145 75s ok 1 - equality, using inflated data 75s # Subtest: equality, using JSON strings 75s ok 1 - null == null is true 75s ok 2 - no unexpected error encountered 75s ok 3 - type of arg 0 was not mutated while making equality check 75s ok 4 - type of arg 1 was not mutated while making equality check 75s # 75s ok 5 - null == 1 is false 75s ok 6 - two instances differ at the expected place 75s ok 7 - no unexpected error encountered 75s ok 8 - type of arg 0 was not mutated while making equality check 75s ok 9 - type of arg 1 was not mutated while making equality check 75s ok 10 - arg 1 did not gain a POK 75s # 75s ok 11 - ["a", "b", "c"] == ["a", "b", "c"] is true 75s ok 12 - no unexpected error encountered 75s ok 13 - type of arg 0 was not mutated while making equality check 75s ok 14 - type of arg 1 was not mutated while making equality check 75s # 75s ok 15 - ["a", "b", "c"] == ["a", "b"] is false 75s ok 16 - two instances differ at the expected place 75s ok 17 - no unexpected error encountered 75s ok 18 - type of arg 0 was not mutated while making equality check 75s ok 19 - type of arg 1 was not mutated while making equality check 75s # 75s ok 20 - ["a", "b"] == ["b", "a"] is false 75s ok 21 - two instances differ at the expected place 75s ok 22 - no unexpected error encountered 75s ok 23 - type of arg 0 was not mutated while making equality check 75s ok 24 - type of arg 1 was not mutated while making equality check 75s # 75s ok 25 - 1 == 1 is true 75s ok 26 - no unexpected error encountered 75s ok 27 - type of arg 0 was not mutated while making equality check 75s ok 28 - type of arg 1 was not mutated while making equality check 75s ok 29 - arg 0 did not gain a POK 75s ok 30 - arg 1 did not gain a POK 75s # 75s ok 31 - 1 == 1.0 is true 75s ok 32 - no unexpected error encountered 75s ok 33 - type of arg 0 was not mutated while making equality check 75s ok 34 - type of arg 1 was not mutated while making equality check 75s ok 35 - arg 0 did not gain a POK 75s ok 36 - arg 1 did not gain a POK 75s # 75s ok 37 - 10 == 10.0 is true 75s ok 38 - no unexpected error encountered 75s ok 39 - type of arg 0 was not mutated while making equality check 75s ok 40 - type of arg 1 was not mutated while making equality check 75s ok 41 - arg 0 did not gain a POK 75s ok 42 - arg 1 did not gain a POK 75s # 75s ok 43 - [1, 2] == [2, 1] is false 75s ok 44 - two instances differ at the expected place 75s ok 45 - no unexpected error encountered 75s ok 46 - type of arg 0 was not mutated while making equality check 75s ok 47 - type of arg 1 was not mutated while making equality check 75s # 75s ok 48 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 2} is true 75s ok 49 - no unexpected error encountered 75s ok 50 - type of arg 0 was not mutated while making equality check 75s ok 51 - type of arg 1 was not mutated while making equality check 75s # 75s ok 52 - {"a" : 1} == {"a" : 1.0} is true 75s ok 53 - no unexpected error encountered 75s ok 54 - type of arg 0 was not mutated while making equality check 75s ok 55 - type of arg 1 was not mutated while making equality check 75s # 75s ok 56 - ["école", "ಠ_ಠ"] == ["école", "ಠ_ಠ"] is true 75s ok 57 - no unexpected error encountered 75s ok 58 - type of arg 0 was not mutated while making equality check 75s ok 59 - type of arg 1 was not mutated while making equality check 75s # 75s ok 60 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 3} is false 75s ok 61 - two instances differ at the expected place 75s ok 62 - no unexpected error encountered 75s ok 63 - type of arg 0 was not mutated while making equality check 75s ok 64 - type of arg 1 was not mutated while making equality check 75s # 75s ok 65 - {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 4}} == {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 5}} is false 75s ok 66 - two instances differ at the expected place 75s ok 67 - no unexpected error encountered 75s ok 68 - type of arg 0 was not mutated while making equality check 75s ok 69 - type of arg 1 was not mutated while making equality check 75s # 75s 1..69 75s ok 2 - equality, using JSON strings 75s # Subtest: equality, using scalarref_booleans 75s ok 1 - false == true is false 75s ok 2 - two instances differ at the expected place 75s ok 3 - no unexpected error encountered 75s ok 4 - type of arg 0 was not mutated while making equality check 75s ok 5 - type of arg 1 was not mutated while making equality check 75s # 75s ok 6 - true == true is true 75s ok 7 - no unexpected error encountered 75s ok 8 - type of arg 0 was not mutated while making equality check 75s ok 9 - type of arg 1 was not mutated while making equality check 75s # 75s ok 10 - false == false is true 75s ok 11 - no unexpected error encountered 75s ok 12 - type of arg 0 was not mutated while making equality check 75s ok 13 - type of arg 1 was not mutated while making equality check 75s # 75s ok 14 - true == false is false 75s ok 15 - two instances differ at the expected place 75s ok 16 - no unexpected error encountered 75s ok 17 - type of arg 0 was not mutated while making equality check 75s ok 18 - type of arg 1 was not mutated while making equality check 75s # 75s ok 19 - null == false is false 75s ok 20 - two instances differ at the expected place 75s ok 21 - no unexpected error encountered 75s ok 22 - type of arg 0 was not mutated while making equality check 75s ok 23 - type of arg 1 was not mutated while making equality check 75s # 75s ok 24 - null == false is false 75s ok 25 - two instances differ at the expected place 75s ok 26 - no unexpected error encountered 75s ok 27 - type of arg 0 was not mutated while making equality check 75s ok 28 - type of arg 1 was not mutated while making equality check 75s # 75s 1..28 75s ok 3 - equality, using scalarref_booleans 75s # Subtest: equality, using stringy_numbers 75s ok 1 - 1 == 1 is true 75s ok 2 - no unexpected error encountered 75s ok 3 - type of arg 0 was not mutated while making equality check (get_type returns integer) 75s ok 4 - type of arg 1 was not mutated while making equality check (get_type returns integer) 75s ok 5 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 75s ok 6 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 75s ok 7 - arg 0 did not gain a POK 75s ok 8 - arg 1 did not gain a POK 75s # 75s ok 9 - 1 == 1.0 is true 75s ok 10 - no unexpected error encountered 75s ok 11 - type of arg 0 was not mutated while making equality check (get_type returns integer) 75s ok 12 - type of arg 1 was not mutated while making equality check (get_type returns integer) 75s ok 13 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 75s ok 14 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 75s ok 15 - arg 0 did not gain a POK 75s ok 16 - arg 1 did not gain a POK 75s # 75s ok 17 - 1 == "1.0" is true 75s ok 18 - no unexpected error encountered 75s ok 19 - type of arg 0 was not mutated while making equality check (get_type returns integer) 75s ok 20 - type of arg 1 was not mutated while making equality check (get_type returns string) 75s ok 21 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 75s ok 22 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 75s ok 23 - arg 0 did not gain a POK 75s ok 24 - arg 1 did not gain an NOK or IOK 75s # 75s ok 25 - "1.1" == 1.1 is true 75s ok 26 - no unexpected error encountered 75s ok 27 - type of arg 0 was not mutated while making equality check (get_type returns string) 75s ok 28 - type of arg 1 was not mutated while making equality check (get_type returns number) 75s ok 29 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 75s ok 30 - type of arg 1 was not mutated while making equality check (is_type('number') returns true) 75s ok 31 - arg 0 did not gain an NOK or IOK 75s ok 32 - arg 1 did not gain a POK 75s # 75s ok 33 - "1" == 1 is true 75s ok 34 - no unexpected error encountered 75s ok 35 - type of arg 0 was not mutated while making equality check (get_type returns string) 75s ok 36 - type of arg 1 was not mutated while making equality check (get_type returns integer) 75s ok 37 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 75s ok 38 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 75s ok 39 - arg 0 did not gain an NOK or IOK 75s ok 40 - arg 1 did not gain a POK 75s # 75s ok 41 - "1.1" == 1.1 is true 75s ok 42 - no unexpected error encountered 75s ok 43 - type of arg 0 was not mutated while making equality check (get_type returns string) 75s ok 44 - type of arg 1 was not mutated while making equality check (get_type returns number) 75s ok 45 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 75s ok 46 - type of arg 1 was not mutated while making equality check (is_type('number') returns true) 75s ok 47 - arg 0 did not gain an NOK or IOK 75s ok 48 - arg 1 did not gain a POK 75s # 75s ok 49 - "1" == "1.00" is true 75s ok 50 - no unexpected error encountered 75s ok 51 - type of arg 0 was not mutated while making equality check (get_type returns string) 75s ok 52 - type of arg 1 was not mutated while making equality check (get_type returns string) 75s ok 53 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 75s ok 54 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 75s ok 55 - arg 0 did not gain an NOK or IOK 75s ok 56 - arg 1 did not gain an NOK or IOK 75s # 75s ok 57 - "1.10" == "1.1000" is true 75s ok 58 - no unexpected error encountered 75s ok 59 - type of arg 0 was not mutated while making equality check (get_type returns string) 75s ok 60 - type of arg 1 was not mutated while making equality check (get_type returns string) 75s ok 61 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 75s ok 62 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 75s ok 63 - arg 0 did not gain an NOK or IOK 75s ok 64 - arg 1 did not gain an NOK or IOK 75s # 75s ok 65 - "x" == "x" is true 75s ok 66 - no unexpected error encountered 75s ok 67 - type of arg 0 was not mutated while making equality check (get_type returns string) 75s ok 68 - type of arg 1 was not mutated while making equality check (get_type returns string) 75s ok 69 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 75s ok 70 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 75s ok 71 - arg 0 did not gain an NOK or IOK 75s ok 72 - arg 1 did not gain an NOK or IOK 75s # 75s ok 73 - "x" == "y" is false 75s ok 74 - two instances differ at the expected place 75s ok 75 - no unexpected error encountered 75s ok 76 - type of arg 0 was not mutated while making equality check (get_type returns string) 75s ok 77 - type of arg 1 was not mutated while making equality check (get_type returns string) 75s ok 78 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 75s ok 79 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 75s ok 80 - arg 0 did not gain an NOK or IOK 75s ok 81 - arg 1 did not gain an NOK or IOK 75s # 75s ok 82 - "x" == 0 is false 75s ok 83 - two instances differ at the expected place 75s ok 84 - no unexpected error encountered 75s ok 85 - type of arg 0 was not mutated while making equality check (get_type returns string) 75s ok 86 - type of arg 1 was not mutated while making equality check (get_type returns integer) 75s ok 87 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 75s ok 88 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 75s ok 89 - arg 0 did not gain an NOK or IOK 75s ok 90 - arg 1 did not gain a POK 75s # 75s ok 91 - 0 == "y" is false 75s ok 92 - two instances differ at the expected place 75s ok 93 - no unexpected error encountered 75s ok 94 - type of arg 0 was not mutated while making equality check (get_type returns integer) 75s ok 95 - type of arg 1 was not mutated while making equality check (get_type returns string) 75s ok 96 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 75s ok 97 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 75s ok 98 - arg 0 did not gain a POK 75s ok 99 - arg 1 did not gain an NOK or IOK 75s # 75s ok 100 - "5" == 5 is true 75s ok 101 - no unexpected error encountered 75s ok 102 - type of arg 0 was not mutated while making equality check (get_type returns string) 75s ok 103 - type of arg 1 was not mutated while making equality check (get_type returns string) 75s ok 104 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 75s ok 105 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 75s ok 106 - arg 0 did not gain an NOK or IOK 75s # 75s ok 107 - 5 == 5 is true 75s ok 108 - no unexpected error encountered 75s ok 109 - type of arg 0 was not mutated while making equality check (get_type returns integer) 75s ok 110 - type of arg 1 was not mutated while making equality check (get_type returns string) 75s ok 111 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 75s ok 112 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 75s ok 113 - arg 0 did not gain a POK 75s # 75s ok 114 - "5" == "five" is false 75s ok 115 - two instances differ at the expected place 75s ok 116 - no unexpected error encountered 75s ok 117 - type of arg 0 was not mutated while making equality check (get_type returns string) 75s ok 118 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 75s ok 119 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 75s ok 120 - arg 0 did not gain an NOK or IOK 75s # 75s ok 121 - 5 == "five" is false 75s ok 122 - two instances differ at the expected place 75s ok 123 - no unexpected error encountered 75s ok 124 - type of arg 0 was not mutated while making equality check (get_type returns integer) 75s ok 125 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 75s ok 126 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 75s ok 127 - arg 0 did not gain a POK 75s # 75s ok 128 - "five" == "five" is false 75s ok 129 - two instances differ at the expected place 75s ok 130 - no unexpected error encountered 75s ok 131 - type of arg 0 was not mutated while making equality check (get_type returns ambiguous type) 75s ok 132 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 75s # 75s 1..132 75s ok 4 - equality, using stringy_numbers 75s 1..4 75s ok 75s t/errors.t .............................. 75s # Subtest: multiple types 75s ok 1 - type returned false 75s ok 2 - got error count 75s ok 3 - correct error generated from type 75s ok 4 - result object serializes correctly 75s 1..4 75s ok 1 - multiple types 75s # Subtest: multipleOf 75s ok 1 - correct error generated from multipleOf 75s 1..1 75s ok 2 - multipleOf 75s # Subtest: uniqueItems 75s ok 1 - correct error generated from uniqueItems 75s 1..1 75s ok 3 - uniqueItems 75s # Subtest: allOf, not, and false schema 75s ok 1 - correct errors with locations; did not collect errors inside "not" 75s ok 2 - short-circuited results contain fewer errors 75s 1..2 75s ok 4 - allOf, not, and false schema 75s # Subtest: anyOf keeps all errors for false paths when invalid, discards errors for false paths when valid 75s ok 1 - correct errors with locations; did not collect errors inside "not" 75s ok 2 - short-circuited results contain the same errors (short-circuiting not possible) 75s ok 3 - did not collect errors from failure paths from successful anyOf 75s ok 4 - no errors collected for true validation 75s 1..4 75s ok 5 - anyOf keeps all errors for false paths when invalid, discards errors for false paths when valid 75s # Subtest: applicators with non-boolean subschemas, discarding intermediary errors - items 75s ok 1 - collected all errors from subschemas for failing branches only (passing branches discard errors) 75s ok 2 - short-circuited results contain fewer errors 75s 1..2 75s ok 6 - applicators with non-boolean subschemas, discarding intermediary errors - items 75s # Subtest: applicators with non-boolean subschemas, discarding intermediary errors - contains 75s ok 1 - collected all errors from subschemas for failing branches only (passing branches discard errors) 75s ok 2 - short-circuited results contain the same errors 75s 1..2 75s ok 7 - applicators with non-boolean subschemas, discarding intermediary errors - contains 75s # Subtest: errors with $refs 75s ok 1 - errors have correct absolute keyword location via $ref 75s 1..1 75s ok 8 - errors with $refs 75s # Subtest: const and enum 75s ok 1 - got details about object differences in errors from const and enum 75s 1..1 75s ok 9 - const and enum 75s # Subtest: exceptions 75s ok 1 - attempting to evaluate a json string returns the exception as an error 75s ok 2 - exception flag is true on the result 75s ok 3 - a subschema of an invalid type returns an error at the right position, and evaluation continues 75s ok 4 - exception flag is true on the result 75s ok 5 - invalid argument to "type" returns an error at the right position, and evaluation continues 75s ok 6 - exception flag is true on the result 75s 1..6 75s ok 10 - exceptions 75s # Subtest: errors after crossing multiple $refs using $id and $anchor 75s ok 1 - errors have correct absolute keyword location via $ref 75s ok 2 - absolute keyword location is correct, even when not used in the $ref 75s 1..2 75s ok 11 - errors after crossing multiple $refs using $id and $anchor 75s # Subtest: unresolvable $ref to a local resource 75s ok 1 - error for a bad $ref reports the correct absolute location that was referred to 75s ok 2 - exception flag is true on the result 75s 1..2 75s ok 12 - unresolvable $ref to a local resource 75s # Subtest: unresolvable $ref to a remote resource 75s ok 1 - error for a bad $ref reports the correct absolute location that was referred to 75s ok 2 - exception flag is true on the result 75s 1..2 75s ok 13 - unresolvable $ref to a remote resource 75s # Subtest: unresolvable $ref to plain-name fragment 75s ok 1 - properly handled a bad $ref to an anchor 75s ok 2 - exception flag is true on the result 75s 1..2 75s ok 14 - unresolvable $ref to plain-name fragment 75s # Subtest: abort due to a schema error 75s ok 1 - exception inside a oneOf (where errors are localized) are still included in the result 75s 1..1 75s ok 15 - abort due to a schema error 75s # Subtest: sorted property names 75s ok 1 - property names are considered in sorted order 75s 1..1 75s ok 16 - sorted property names 75s # Subtest: bad regex in schema 75s ok 1 - bad "pattern" and "patternProperties" regexes are properly noted in error 75s ok 2 - bad "pattern" regex is properly noted in error 75s ok 3 - "pattern" regex is now valid, due to the Unicode property becoming defined 75s 1..3 75s ok 17 - bad regex in schema 75s # Subtest: JSON pointer escaping 75s ok 1 - JSON pointers are properly escaped; URIs doubly so 75s ok 2 - absoluteKeywordLocation is omitted when paths are the same, not counting uri encoding 75s ok 3 - use of _schema_path_suffix in a fatal error 75s 1..3 75s ok 18 - JSON pointer escaping 75s # Subtest: absoluteKeywordLocation 75s ok 1 - absoluteKeywordLocation is included when different from instanceLocation, even when empty 75s ok 2 - absoluteKeywordLocation is not included when the path equals keywordLocation, even if a $ref is present 75s ok 3 - absoluteKeywordLocation is never "\#" 75s ok 4 - absoluteKeywordLocation reflects the canonical schema uri as it changes when passing through $id 75s ok 5 - plain-name fragment in $id does not change canonical schema uri 75s 1..5 75s ok 19 - absoluteKeywordLocation 75s # Subtest: dependentRequired 75s ok 1 - dependentRequired traversal error 75s 1..1 75s ok 20 - dependentRequired 75s # Subtest: numbers in output 75s ok 1 - numbers in errors do not lose any digits of precision 75s 1..1 75s ok 21 - numbers in output 75s # Subtest: effective_base_uri and overriding starting locations 75s ok 1 - error locations are relative to the effective_base_uri, but $ref usage is not restricted 75s ok 2 - can alter locations with data_path, traversed_schema_path, effective_base_uri 75s 1..2 75s ok 22 - effective_base_uri and overriding starting locations 75s # Subtest: recommended_response 75s ok 1 - recommended_response is not defined when there are no errors 75s ok 2 - recommended_response uses the first error in the result 75s ok 3 - recommended_response indicates an exception occurred 75s ok 4 - recommended_response uses the one from the error that is explicitly set 75s 1..4 75s ok 23 - recommended_response 75s # Subtest: exclusiveMaximum, exclusiveMinimum across drafts 75s ok 1 - later drafts; errors are produced separately from the keywords 75s ok 2 - later drafts; two errors can result 75s ok 3 - draft4: one error comes from maximum, but includes the exclusiveMaximum check 75s ok 4 - draft4: maximum + exclusiveMaximum checks are combined 75s ok 5 - draft4: exclusive check uses the right boundary 75s ok 6 - draft4: maximum check is correct 75s 1..6 75s ok 24 - exclusiveMaximum, exclusiveMinimum across drafts 75s 1..24 75s ok 75s t/evaluate_json_string.t ................ 75s ok 1 - we have a JSON decoder 75s ok 2 - json data "true" is evaluated successfully 75s ok 3 - no exceptions in evaluate_json_string on good json 75s ok 4 - evaluating bad json data returns false, with error 75s ok 5 - no exceptions in evaluate_json_string on bad json 75s 1..5 75s ok 76s t/find-identifiers.t .................... 76s # Subtest: $id sets canonical uri 76s ok 1 - $id was recognized - $ref was successfully traversed 76s ok 2 - resources indexed; document canonical_uri is still unset 76s ok 3 - the same document object is indexed under both URIs 76s ok 4 - the schema contains no blessed leaf nodes 76s 1..4 76s ok 1 - $id sets canonical uri 76s # Subtest: anchors 76s ok 1 - $id was recognized - absolute locations use json paths, not anchors 76s ok 2 - internal resource index is correct 76s 1..2 76s ok 2 - anchors 76s # Subtest: $anchor at root without $id 76s ok 1 - $id without anchor was recognized - absolute locations use json paths, not anchors 76s ok 2 - internal resource index is correct 76s 1..2 76s ok 3 - $anchor at root without $id 76s # Subtest: $ids and $anchors in subschemas after $id changes 76s ok 1 - $anchor is legal in a subschema 76s ok 2 - internal resource index is correct 76s 1..2 76s ok 4 - $ids and $anchors in subschemas after $id changes 76s # Subtest: invalid $id and $anchor 76s ok 1 - bad $id and $anchor are detected, even if bad definitions are not traversed 76s ok 2 - "bad" $ids and $anchors that are not actually keywords are not reported as errors 76s 1..2 76s ok 5 - invalid $id and $anchor 76s # Subtest: nested $ids 76s ok 1 - errors have the correct location 76s ok 2 - properly resolved all the nested $ids 76s 1..2 76s ok 6 - nested $ids 76s # Subtest: multiple documents, each using canonical_uri = "" 76s ok 1 - evaluation of schema1 76s ok 2 - resources in initial schema are indexed 76s ok 3 - successful evaluation of schema2 76s ok 4 - resources in second schema are indexed; all resources from first schema are preserved except uri="" 76s 1..4 76s ok 7 - multiple documents, each using canonical_uri = "" 76s # Subtest: multiple documents, each using canonical_uri = "", collisions in other resources 76s ok 1 - evaluation of schema1 76s ok 2 - resources in initial schema are indexed 76s ok 3 - schema2 cannot be evaluated - an internal $id collides with an existing resource 76s 1..3 76s ok 8 - multiple documents, each using canonical_uri = "", collisions in other resources 76s # Subtest: resource collisions in canonical uris 76s ok 1 - detected collision between a document's initial uri and a document's subschema's uri 76s ok 2 - detected collision between two document subschema uris 76s 1..2 76s ok 9 - resource collisions in canonical uris 76s # Subtest: relative uri in $id 76s ok 1 - root schema location is correctly identified 76s ok 2 - properly able to traverse a recursive schema using a relative $id 76s 1..2 76s ok 10 - relative uri in $id 76s 1..10 76s ok 76s t/formats.t ............................. 76s # Subtest: no validation 76s ok 1 - validate_formats=0 disables format assertion behaviour; annotation is still produced 76s ok 2 - format validation can be turned off in evaluate() 76s 1..2 76s ok 1 - no validation 76s # Subtest: simple validation 76s ok 1 - non-string values are valid, and produce an annotation 76s ok 2 - simple success 76s ok 3 - simple failure 76s ok 4 - format_validation defaults to false 76s ok 5 - format validation can be turned on in evaluate() 76s ok 6 - ...but the value is still false on the object 76s 1..6 76s ok 2 - simple validation 76s # Subtest: override a format sub 76s ok 1 - check syntax of override to existing format via constructor 76s ok 2 - check syntax of override format name to existing format via setter 76s ok 3 - check syntax of override definition value to existing format via setter 76s ok 4 - type is required if passing a hashref 76s ok 5 - cannot override a core format to support a different data type 76s ok 6 - can override a core format definition, as long as it uses the same type 76s ok 7 - check syntax of implementation for a new format 76s ok 8 - check syntax of implementation when adding an override to existing format 76s ok 9 - check syntax of implementation when adding a new format 76s ok 10 - swapping out format implementation turns success into failure; wrong types are still valid 76s ok 11 - can override a custom format definition to use a different type 76s 1..11 76s ok 3 - override a format sub 76s # Subtest: toggle validate_formats after adding schema 76s ok 1 - assertion behaviour is off initially 76s ok 2 - assertion behaviour can be enabled later with an already-loaded schema 76s ok 3 - valid assertion behaviour does not die 76s ok 4 - a schema document can be used with another evaluator with assertion behaviour 76s ok 5 - valid assertion behaviour does not die 76s 1..5 76s ok 4 - toggle validate_formats after adding schema 76s # Subtest: custom metaschemas 76s ok 1 - custom metaschema using format-assertion=false validates formats 76s ok 2 - custom metaschema using format-assertion=true validates formats 76s 1..2 76s ok 5 - custom metaschemas 76s # Subtest: core formats added after draft7 76s ok 1 - duration is not implemented in draft7 76s ok 2 - uuid is not implemented in draft7 76s 1..2 76s ok 6 - core formats added after draft7 76s # Subtest: unimplemented core formats 76s ok 1 - draft4 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 76s ok 2 - draft6 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 76s ok 3 - draft7 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 76s ok 4 - draft2019-09 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 76s ok 5 - draft2020-12 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 76s ok 6 - draft2020-12 with Format-Assertion vocabulary: error when using a core format that is unimplemented 76s ok 7 - draft2020-12 with Format-Assertion vocabulary: error is seen even when containing subschema would be true, and evaluation is short-circuited 76s ok 8 - unimplemented core format can have a custom definition provided 76s 1..8 76s ok 7 - unimplemented core formats 76s # Subtest: unknown custom formats 76s ok 1 - draft4: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 76s ok 2 - draft6: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 76s ok 3 - draft7: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 76s ok 4 - draft2019-09: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure; annotation is still produced 76s ok 5 - draft2020-12: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure; annotation is still produced 76s ok 6 - draft2020-12: for format validation with the Format-Assertion vocabulary, no errors during traversal when using an unknown custom format 76s ok 7 - draft2020-12: for format validation with the Format-Assertion vocabulary, unrecognized custom formats are detected at evaluation time 76s ok 8 - ...but this error can be avoided if the keyword is never evaluated 76s 1..8 76s ok 8 - unknown custom formats 76s # Subtest: format: invalid base type(s) 76s ok 1 - integer is not a valid base type for a format validation 76s ok 2 - integer, string is not a valid base type for a format validation 76s 1..2 76s ok 9 - format: invalid base type(s) 76s # Subtest: format: pure_integer 76s ok 1 - pure_integer format with type 76s ok 2 - pure_integer format without type 76s 1..2 76s ok 10 - format: pure_integer 76s # Subtest: formats supporting multiple core types 76s ok 1 - int64 format without type - accepts both numbers and strings 76s ok 2 - int64 format without type - accepts both numbers and strings 76s 1..2 76s ok 11 - formats supporting multiple core types 76s # Subtest: stringy numbers with a numeric format 76s ok 1 - FormatAnnotation+validate_formats: strings that look like numbers can be validated against a numeric format when stringy_numbers=1 76s ok 2 - FormatAssertion: strings that look like numbers can be validated against a numeric format when stringy_numbers=1 76s 1..2 76s ok 12 - stringy numbers with a numeric format 76s # Subtest: annotation formats using implementations that rely on optional dependencies 76s ok 1 - can annotate a non-string against formats without their optional dependencies, without dying 76s 1..1 76s ok 13 - annotation formats using implementations that rely on optional dependencies 76s # Subtest: assertion formats using implementations that rely on optional dependencies 76s ok 1 - draft4: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 76s ok 2 - draft4: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 76s ok 3 - draft6: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 76s ok 4 - draft6: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 76s ok 5 - draft7: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 76s ok 6 - draft7: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 76s ok 7 - draft2019-09: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 76s ok 8 - draft2019-09: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 76s ok 9 - draft2020-12: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 76s ok 10 - draft2020-12: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 76s ok 11 - draft2020-12: for format validation with the Format-Assertion vocabulary, no errors during traversal when using an unknown custom format 76s ok 12 - ...but we do warn for the missing module 76s ok 13 - draft2020-12: for Format-Asertion vocabulary, we immediately abort when encountering a format that throws an exception 76s 1..13 76s ok 14 - assertion formats using implementations that rely on optional dependencies 76s 1..14 76s ok 77s t/invalid-schemas.t ..................... 77s # 77s # AUTHOR_TESTING: 77s # AUTOMATED_TESTING: 1 77s # EXTENDED_TESTING: 77s # NO_TODO: 77s # TEST_DIR: 77s # NO_SHORT_CIRCUIT: 77s # 77s # running tests in /tmp/autopkgtest.kEyFY6/autopkgtest_tmp/smokef6VDtA/t/invalid-schemas against draft2019-09... 77s # 77s ok 1 - invalid-input.json: "invalid user input: type (string)" - "graceful error from 'type' (string)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "type value is not a string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "type value is not a string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 2 - invalid-input.json: "invalid user input: type (array)" - "graceful error from 'type' (array)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "unrecognized type \"\"", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "unrecognized type \"\"", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 3 - ref.json: "invalid $ref: unencoded characters" - "unencoded characters in $ref uri" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 4 - ref.json: "invalid $ref: non-ascii characters" - "non-ascii characters in $ref uri" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 5 - vocabulary.json: "invalid $vocabulary: need boolean values" - "an invalid $vocabulary value (value should be a boolean)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 6 - vocabulary.json: "invalid $vocabulary: uri must not have unencoded characters" - "unencoded characters in $vocabulary uri" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "\"http://foo^bar/path\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "\"http://foo^bar/path\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 7 - vocabulary.json: "invalid $vocabulary: non-ascii characters in uri" - "non-ascii characters in $vocabulary uri" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 8 - vocabulary.json: "invalid $vocabulary: missing scheme" - "$vocabulary uri is missing a scheme" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "\"foo.com\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/foo.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "\"foo.com\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/foo.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s # generated with: Test::JSON::Schema::Acceptance 1.029 77s # specification version: draft2019-09 77s # using custom test directory: t/invalid-schemas 77s # optional tests included: no 77s # 77s # filename pass todo-fail fail 77s # --------------------------------------------------------------- 77s # invalid-input.json 2 0 0 77s # ref.json 2 0 0 77s # vocabulary.json 4 0 0 77s # --------------------------------------------------------------- 77s # TOTAL 8 0 0 77s # 77s # Congratulations, all non-optional tests are passing! 77s # 77s ok 9 - no leaks in the main evaluator object 77s ok 10 - no leaks in the short-circuiting evaluator object 77s # 77s # AUTHOR_TESTING: 77s # AUTOMATED_TESTING: 1 77s # EXTENDED_TESTING: 77s # NO_TODO: 77s # TEST_DIR: 77s # NO_SHORT_CIRCUIT: 77s # 77s # running tests in /tmp/autopkgtest.kEyFY6/autopkgtest_tmp/smokef6VDtA/t/invalid-schemas against draft2020-12... 77s # 77s ok 11 - invalid-input.json: "invalid user input: type (string)" - "graceful error from 'type' (string)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "type value is not a string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "type value is not a string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 12 - invalid-input.json: "invalid user input: type (array)" - "graceful error from 'type' (array)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "unrecognized type \"\"", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "unrecognized type \"\"", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 13 - ref.json: "invalid $ref: unencoded characters" - "unencoded characters in $ref uri" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 14 - ref.json: "invalid $ref: non-ascii characters" - "non-ascii characters in $ref uri" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 15 - vocabulary.json: "invalid $vocabulary: need boolean values" - "an invalid $vocabulary value (value should be a boolean)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 16 - vocabulary.json: "invalid $vocabulary: uri must not have unencoded characters" - "unencoded characters in $vocabulary uri" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "\"http://foo^bar/path\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "\"http://foo^bar/path\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 17 - vocabulary.json: "invalid $vocabulary: non-ascii characters in uri" - "non-ascii characters in $vocabulary uri" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 18 - vocabulary.json: "invalid $vocabulary: missing scheme" - "$vocabulary uri is missing a scheme" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "\"foo.com\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/foo.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "\"foo.com\" is not a valid URI", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$vocabulary/foo.com" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s # generated with: Test::JSON::Schema::Acceptance 1.029 77s # specification version: draft2020-12 77s # using custom test directory: t/invalid-schemas 77s # optional tests included: no 77s # 77s # filename pass todo-fail fail 77s # --------------------------------------------------------------- 77s # invalid-input.json 2 0 0 77s # ref.json 2 0 0 77s # vocabulary.json 4 0 0 77s # --------------------------------------------------------------- 77s # TOTAL 8 0 0 77s # 77s # Congratulations, all non-optional tests are passing! 77s # 77s ok 19 - no leaks in the main evaluator object 77s ok 20 - no leaks in the short-circuiting evaluator object 77s 1..20 77s ok 77s t/max_traversal_depth.t ................. 77s ok 1 - evaluation is halted when traversal gets too deep 77s ok 2 - evaluation is halted when an instance location is evaluated against the same schema location a second time 77s ok 3 - the seen counter does not confuse URI paths and fragments: /properties/foo vs \#/properties/foo 77s ok 4 - the seen counter does not confuse two subschemas that both apply the same definition to the same instance location 77s 1..4 77s ok 77s t/multipleOf.t .......................... 77s # Subtest: multipleOf, native types 77s ok 1 - 4 is a multiple of 2 77s ok 2 - 4 is a multiple of 1 77s ok 3 - 4 is not a multiple of 3 77s ok 4 - 4.5 is a multiple of 1.5 77s ok 5 - 4.5 is not a multiple of 1 77s ok 6 - 4.5 is not a multiple of 3 77s ok 7 - 4 is a multiple of 2 77s ok 8 - 4 is not a multiple of 2.5 77s ok 9 - 5 is a multiple of 2.5 77s ok 10 - 4.5 is a multiple of 2.25 77s ok 11 - 4.5 is not a multiple of 2.5 77s ok 12 - 4.5 is not a multiple of 2 77s ok 13 - -9223372036854775808 is a multiple of 0.5 77s ok 14 - 9223372036854775807 is a multiple of 0.5 77s ok 15 - 18446744073709551615 is a multiple of 0.5 77s 1..15 77s ok 1 - multipleOf, native types 77s # Subtest: multipleOf, data is a bignum 77s ok 1 - 4 is a multiple of 2 77s ok 2 - 4 is a multiple of 1 77s ok 3 - 4 is not a multiple of 3 77s ok 4 - 4.5 is a multiple of 1.5 77s ok 5 - 4.5 is not a multiple of 1 77s ok 6 - 4.5 is not a multiple of 3 77s ok 7 - 4 is a multiple of 2 77s ok 8 - 4 is not a multiple of 2.5 77s ok 9 - 5 is a multiple of 2.5 77s ok 10 - 4.5 is a multiple of 2.25 77s ok 11 - 4.5 is not a multiple of 2.5 77s ok 12 - 4.5 is not a multiple of 2 77s ok 13 - -9223372036854775808 is a multiple of 0.5 77s ok 14 - 9223372036854775807 is a multiple of 0.5 77s ok 15 - 18446744073709551615 is a multiple of 0.5 77s 1..15 77s ok 2 - multipleOf, data is a bignum 77s # Subtest: multipleOf, multipleOf is a bignum 77s ok 1 - 4 is a multiple of 2 77s ok 2 - 4 is a multiple of 1 77s ok 3 - 4 is not a multiple of 3 77s ok 4 - 4.5 is a multiple of 1.5 77s ok 5 - 4.5 is not a multiple of 1 77s ok 6 - 4.5 is not a multiple of 3 77s ok 7 - 4 is a multiple of 2 77s ok 8 - 4 is not a multiple of 2.5 77s ok 9 - 5 is a multiple of 2.5 77s ok 10 - 4.5 is a multiple of 2.25 77s ok 11 - 4.5 is not a multiple of 2.5 77s ok 12 - 4.5 is not a multiple of 2 77s ok 13 - -9223372036854775808 is a multiple of 0.5 77s ok 14 - 9223372036854775807 is a multiple of 0.5 77s ok 15 - 18446744073709551615 is a multiple of 0.5 77s 1..15 77s ok 3 - multipleOf, multipleOf is a bignum 77s # Subtest: multipleOf, data and multipleOf are bignums 77s ok 1 - 4 is a multiple of 2 77s ok 2 - 4 is a multiple of 1 77s ok 3 - 4 is not a multiple of 3 77s ok 4 - 4.5 is a multiple of 1.5 77s ok 5 - 4.5 is not a multiple of 1 77s ok 6 - 4.5 is not a multiple of 3 77s ok 7 - 4 is a multiple of 2 77s ok 8 - 4 is not a multiple of 2.5 77s ok 9 - 5 is a multiple of 2.5 77s ok 10 - 4.5 is a multiple of 2.25 77s ok 11 - 4.5 is not a multiple of 2.5 77s ok 12 - 4.5 is not a multiple of 2 77s ok 13 - -9223372036854775808 is a multiple of 0.5 77s ok 14 - 9223372036854775807 is a multiple of 0.5 77s ok 15 - 18446744073709551615 is a multiple of 0.5 77s 1..15 77s ok 4 - multipleOf, data and multipleOf are bignums 77s 1..4 77s ok 78s t/output_format.t ....................... 78s ok 1 - output_format defaults to basic 78s ok 2 - Result object gets the output_format from the evaluator 78s ok 3 - basic format includes all errors linearly 78s ok 4 - flag format only includes the valid property 78s ok 5 - terse format omits errors from redundant applicator keywords 78s ok 6 - basic format includes all errors linearly 78s ok 7 - terse format does not omit these crucial errors 78s # Subtest: strict_basic 78s ok 1 - strict_basic turns json pointers into URIs, including uri escapes 78s 1..1 78s ok 8 - strict_basic 78s # Subtest: AND two result objects together 78s ok 1 - ANDing true and false results = invalid, but errors and annotations both preserved 78s ok 2 - ANDing two true results = valid 78s ok 3 - ANDing two false results = invalid 78s ok 4 - only Result objects can be processed 78s ok 5 - ANDing a result with itself is a no-op 78s 1..5 78s ok 9 - AND two result objects together 78s # Subtest: annotations 78s ok 1 - by default, annotations are included in the formatted output 78s ok 2 - but inclusion can be disabled 78s 1..2 78s ok 10 - annotations 78s # Subtest: data_only 78s ok 1 - data_only format outputs a string of data locations only, with duplicates removed 78s ok 2 - data_only format uses keyword locations when result came from traverse 78s 1..2 78s ok 11 - data_only 78s 1..11 78s ok 78s t/pattern.t ............................. 78s ok 1 - unchanged LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 78s ok 2 - unchanged LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 78s ok 3 - upgraded LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 78s ok 4 - upgraded LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 78s ok 5 - downgraded LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 78s ok 6 - downgraded LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 78s # Subtest: empty pattern 78s ok 1 - empty pattern in "pattern" will correctly match 78s ok 2 - empty pattern in "patternProperties" will correctly match 78s 1..2 78s ok 7 - empty pattern 78s 1..7 78s ok 79s t/ref.t ................................. 79s # Subtest: local JSON pointer 79s ok 1 - can follow local $ref to a true schema 79s ok 2 - can follow local $ref to a false schema 79s ok 3 - got error for unresolvable ref 79s ok 4 - no exception 79s 1..4 79s ok 1 - local JSON pointer 79s # Subtest: fragment with URI-escaped and JSON Pointer-escaped characters 79s ok 1 - can follow $ref with escaped components 79s 1..1 79s ok 2 - fragment with URI-escaped and JSON Pointer-escaped characters 79s # Subtest: local anchor 79s ok 1 - can follow local $ref to an $anchor to a true schema 79s ok 2 - can follow local $ref to an $anchor to a false schema 79s ok 3 - got error for unresolvable ref 79s ok 4 - no exception 79s 1..4 79s ok 3 - local anchor 79s # Subtest: $id with an empty fragment 79s ok 1 - $id with empty fragment can be found by $ref that did not include it; fragment not included in error either 79s 1..1 79s ok 4 - $id with an empty fragment 79s # Subtest: $recursiveRef without nesting behaves like $ref 79s ok 1 - $recursiveRef without nested $recursiveAnchor behaves like $ref 79s 1..1 79s ok 5 - $recursiveRef without nesting behaves like $ref 79s # Subtest: $recursiveRef without $recursiveAnchor behaves like $ref 79s ok 1 - $recursiveRef without $recursiveAnchor behaves like $ref 79s 1..1 79s ok 6 - $recursiveRef without $recursiveAnchor behaves like $ref 79s # Subtest: $recursiveAnchor must be at a schema resource root 79s ok 1 - $recursiveAnchor can only appear at a schema resource root 79s ok 2 - schema now valid when an $id is added 79s ok 3 - $recursiveAnchor can only appear at a schema resource root 79s ok 4 - properly detecting a bad $recursiveAnchor even before passing through a $ref 79s 1..4 79s ok 7 - $recursiveAnchor must be at a schema resource root 79s # Subtest: $recursiveAnchor and $recursiveRef - standard usecases 79s ok 1 - validation requires the override that is not in scope 79s ok 2 - $recursiveRef requires a $recursiveAnchor that does not exist 79s ok 3 - $recursiveRef with both $recursiveAnchors in scope 79s 1..3 79s ok 8 - $recursiveAnchor and $recursiveRef - standard usecases 79s # Subtest: $recursiveRef without $recursiveAnchor 79s ok 1 - $ref - one level recursion 79s ok 2 - $recursiveRef with no $recursiveAnchor in scope has the same outcome 79s 1..2 79s ok 9 - $recursiveRef without $recursiveAnchor 79s # Subtest: $recursiveAnchor in our dynamic scope, but not in the target schema 79s ok 1 - $recursiveAnchor does not exist in the target schema - local recursion only, so integers match 79s ok 2 - $recursiveAnchor does not exist in the target schema - no recursion 79s ok 3 - $recursiveAnchor does not exist in the target schema - local recursion only 79s 1..3 79s ok 10 - $recursiveAnchor in our dynamic scope, but not in the target schema 79s # Subtest: $dynamicRef without nesting behaves like $ref 79s ok 1 - $dynamicRef without nested $dynamicAnchor behaves like $ref 79s 1..1 79s ok 11 - $dynamicRef without nesting behaves like $ref 79s # Subtest: $recursiveRef without $dynamicAnchor behaves like $ref 79s ok 1 - $dynamicRef without $dynamicAnchor behaves like $ref 79s 1..1 79s ok 12 - $recursiveRef without $dynamicAnchor behaves like $ref 79s # Subtest: $dynamicAnchor and $dynamicRef - standard usecases 79s ok 1 - validation requires the override that is not in scope 79s ok 2 - $dynamicRef requires a $dynamicAnchor that does not exist 79s ok 3 - $dynamicRef must use a URI containing the dynamic anchor fragment 79s ok 4 - there is no outer $dynamicAnchor in scope to recurse to 79s ok 5 - we have an outer $dynamicAnchor, and are using the fragment URI, but we used $ref rather than $dynamicRef 79s ok 6 - there is an outer $dynamicAnchor in scope to recurse to, but $dynamicRef must use a URI containing the dynamic anchor fragment 79s ok 7 - now everything is in place to recurse to the base 79s ok 8 - there is no $dynamicAnchor at the original target, and no anchor used in the target URI 79s 1..8 79s ok 13 - $dynamicAnchor and $dynamicRef - standard usecases 79s # Subtest: $dynamicRef to $dynamicAnchor not directly in the evaluation path 79s ok 1 - second dynamic anchor is not in the evaluation path, but we found it via dynamic scope - type does not match 79s ok 2 - regular $anchor in dynamic scope should not be used by $dynamicRef 79s ok 3 - some other $dynamicAnchor in dynamic scope should not be used by $dynamicRef 79s ok 4 - second dynamic anchor is not in the evaluation path, but we found it via dynamic scope - type matches 79s ok 5 - the first dynamic scope is set by document uri, not just the $id keyword 79s 1..5 79s ok 14 - $dynamicRef to $dynamicAnchor not directly in the evaluation path 79s # Subtest: after leaving a dynamic scope, it should not be used by a $dynamicRef 79s ok 1 - first_scope is no longer in scope, so it is not used by $dynamicRef 79s 1..1 79s ok 15 - after leaving a dynamic scope, it should not be used by a $dynamicRef 79s # Subtest: anchors do not match 79s ok 1 - $dynamicRef goes to enhanced schema 79s ok 2 - $dynamicRef -> $dynamicAnchor -> $anchor is a no go: we stay at the original schema 79s 1..2 79s ok 16 - anchors do not match 79s # Subtest: reference to a non-schema location 79s ok 1 - $ref to a non-schema is not permitted 79s ok 2 - $dynamicRef to a non-schema is not permitted 79s ok 3 - $recursiveRef to a non-schema is not permitted 79s ok 4 - $schema to a non-schema is not permitted 79s 1..4 79s ok 17 - reference to a non-schema location 79s # Subtest: evaluate at a non-schema location 79s ok 1 - evaluating at a non-schema location is not permitted 79s 1..1 79s ok 18 - evaluate at a non-schema location 79s 1..18 79s ok 79s t/serialization.t ....................... 79s ok 1 - evaluated against an empty schema 79s ok 2 - evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 79s ok 3 - evaluate data against schema with custom dialect; format-annotation is used 79s ok 4 - frozen object contains all the right keys 79s ok 5 - thawed object contains all the right keys 79s ok 6 - evaluate again against an empty schema 79s ok 7 - in thawed object, evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 79s ok 8 - evaluate again against an empty schema 79s ok 9 - core vocabulary_class for a different spec version works in a thawed object 79s ok 10 - format-assertion vocabulary_class works in a thawed object 79s ok 11 - metaschema_vocabulary_classes works in a thawed object 79s ok 12 - media_type works in a thawed object 79s ok 13 - encoding works in a thawed object 79s # Subtest: thaw object in a separate process 79s ok 1 - thawed object in a new process contains all the right keys 79s ok 2 - in thawed object, evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 79s ok 3 - evaluate data against schema with custom dialect; format-assertion is used 79s 1..3 79s ok 14 - thaw object in a separate process 79s ok 15 - child process finished successfully 79s 1..15 79s ok 80s t/specification_version.t ............... 80s ok 1 - unrecognized $SPECIFICATION_VERSION 80s # Subtest: specification aliases 80s ok 1 - 2020-12 is an alias for draft2020-12 80s ok 2 - 2019-09 is an alias for draft2019-09 80s ok 3 - 7 is an alias for draft7 80s 1..3 80s ok 2 - specification aliases 80s # Subtest: $ref and older specification versions 80s ok 1 - $schema and $ref cannot be used together, when $schema is too old 80s 1..1 80s ok 3 - $ref and older specification versions 80s # Subtest: <= draft7: $ref in combination with any other keyword causes the other keywords to be ignored 80s ok 1 - keywords adjacent to $ref are not evaluated 80s 1..1 80s ok 4 - <= draft7: $ref in combination with any other keyword causes the other keywords to be ignored 80s # Subtest: $ref adjacent to a path used in a $ref 80s ok 1 - the presence of $ref also blocks the use of other $refs to adjacent locations 80s 1..1 80s ok 5 - $ref adjacent to a path used in a $ref 80s # Subtest: $defs support 80s ok 1 - $defs is not recognized in <= draft7 80s ok 2 - $defs is supported in > draft7 80s 1..2 80s ok 6 - $defs support 80s # Subtest: definitions support 80s ok 1 - definitions is not recognized in >= draft2019-09 80s ok 2 - warned when using no-longer-supported keyword 80s ok 3 - definitions is supported in <= draft7 80s 1..3 80s ok 7 - definitions support 80s # Subtest: dependencies, dependentRequired, dependentSchemas 80s ok 1 - dependencies is not recognized in >= draft2019-09 80s ok 2 - warned when using no-longer-supported keyword 80s ok 3 - dependentRequired is supported in >= draft2019-09 80s ok 4 - dependentSchemas is supported in >= draft2019-09 80s ok 5 - dependencies is supported in <= draft7 80s ok 6 - dependentRequired is not recognized in <= draft7 80s ok 7 - dependentSchemas is not recognized in <= draft7 80s 1..7 80s ok 8 - dependencies, dependentRequired, dependentSchemas 80s # Subtest: prefixItems, items and additionalItems 80s ok 1 - prefixitems+items works when specification_version >= draft2020-12 80s ok 2 - array form of items not supported when specification_version >= draft2020-12 80s ok 3 - additionalitems not recognized when specification_version >= draft2020-12 80s ok 4 - warned when using no-longer-supported keyword 80s ok 5 - prefixitems not supported when specification_version specifies other than draft2020-12 80s ok 6 - array-based items in >= draft2020-12 80s ok 7 - prefixItems + additionalItems 80s ok 8 - warned when using no-longer-supported keyword 80s ok 9 - prefixItems + schema-based items 80s ok 10 - schema-based items + additionalItems, failure case 80s ok 11 - warned when using no-longer-supported keyword 80s ok 12 - schema-based items + additionalItems, passing case 80s ok 13 - warned when using no-longer-supported keyword 80s 1..13 80s ok 9 - prefixItems, items and additionalItems 80s 1..9 80s ok 80s t/strict.t .............................. 80s ok 1 - strict defaults to false 80s ok 2 - by default, unknown keywords are allowed in evaluate() 80s ok 3 - strict mode disallows unknown keywords during evaluation via a config override 80s ok 4 - by default, unknown keywords are allowed in validate_schema() 80s ok 5 - strict mode disallows unknown keywords in validate_schema() via a config override 80s ok 6 - strict mode disallows unknown keywords during evaluation, even if the document was already traversed 80s ok 7 - strict mode disallows unknown keywords in the schema data passed to validate_schema() 80s ok 8 - strict mode disallows unknown keywords during traverse 80s ok 9 - strict mode only detected one property this time - bloop is evaluated 80s ok 10 - strict mode detects unknown keywords using draft7 80s 1..10 80s ok 80s t/stringy-numbers.t ..................... 80s # stringy_numbers = 0 80s ok 1 - strings cannot be used in place of numbers in schema for multipleOf 80s ok 2 - strings cannot be used in place of numbers in schema for maximum 80s ok 3 - strings cannot be used in place of numbers in schema for exclusiveMaximum 80s ok 4 - strings cannot be used in place of numbers in schema for minimum 80s ok 5 - strings cannot be used in place of numbers in schema for exclusiveMinimum 80s ok 6 - strings that do not look like numbers are never valid as numbers 80s ok 7 - by default "type": "string" does not accept numbers 80s ok 8 - real numbers are always evaluated 80s ok 9 - by default, stringy numbers are not evaluated by numeric keywords 80s ok 10 - data was not mutated 80s ok 11 - by default, stringy numbers are not the same as numbers using comparison keywords 80s ok 12 - data was not mutated 80s # stringy_numbers = 1 80s ok 13 - strings cannot be used in place of numbers in schema for multipleOf 80s ok 14 - strings cannot be used in place of numbers in schema for maximum 80s ok 15 - strings cannot be used in place of numbers in schema for exclusiveMaximum 80s ok 16 - strings cannot be used in place of numbers in schema for minimum 80s ok 17 - strings cannot be used in place of numbers in schema for exclusiveMinimum 80s ok 18 - strings that do not look like numbers are never valid as numbers 80s ok 19 - using stringy numbers, numeric strings are treated as numbers but are still not always integers 80s ok 20 - real numbers are always evaluated 80s ok 21 - with the config enabled, stringy numbers are treated as numbers by numeric keywords 80s ok 22 - data was not mutated 80s ok 23 - with the config enabled, stringy numbers are the same as numbers using comparison keywords 80s ok 24 - data was not mutated 80s 1..24 80s ok 81s t/traverse.t ............................ 81s # Subtest: traversal with callbacks 81s ok 1 - errors encountered during traversal are returned 81s ok 2 - callback for erroneous keyword was not called 81s ok 3 - extracted all the real $refs out of the schema, with locations and canonical targets 81s ok 4 - identified all subschemas 81s 1..4 81s ok 1 - traversal with callbacks 81s # Subtest: errors when parsing $schema keyword 81s ok 1 - $schema is not a string 81s ok 2 - $schema is not a URI 81s 1..2 81s ok 2 - errors when parsing $schema keyword 81s # Subtest: default metaschema 81s ok 1 - dialect is properly determined 81s ok 2 - error within $defs is found, showing both Core and Applicator vocabularies are used 81s 1..2 81s ok 3 - default metaschema 81s # Subtest: traversing a dialect with different core keywords 81s ok 1 - dialect changes at root, with $id - dialect is switched in time to get a new keyword list for the core vocabulary 81s ok 2 - other $state information is correct 81s ok 3 - no errors when parsing this schema 81s ok 4 - switched dialect in time to extract all identifiers, from root and definition 81s ok 5 - dialect changes at root, no $id - dialect is switched in time to get a new keyword list for the core vocabulary 81s ok 6 - dialect changes below root - dialect is switched in time to get a new keyword list for the core vocabulary 81s 1..6 81s ok 4 - traversing a dialect with different core keywords 81s # Subtest: $schema without an $id, below the root 81s ok 1 - $schema cannot exist without an $id, or at the root 81s 1..1 81s ok 5 - $schema without an $id, below the root 81s # Subtest: duplicate identifiers 81s ok 1 - detected colliding $ids within a single schema 81s ok 2 - two anchors with different base uris are acceptable 81s ok 3 - detected colliding $anchors within a single schema 81s 1..3 81s ok 6 - duplicate identifiers 81s # Subtest: $anchor without $id 81s ok 1 - found anchor at root, without an $id to pre-populate the identifiers hash 81s ok 2 - found anchor within schema, without an $id to pre-populate the identifiers hash 81s 1..2 81s ok 7 - $anchor without $id 81s # Subtest: traverse with overridden specification_version 81s ok 1 - $state is correct with no $schema keyword, no overrides 81s ok 2 - $state is correct with a $schema keyword, no overrides 81s ok 3 - $state is correct with no $schema keyword, and an overridden specification_version 81s ok 4 - $state is correct with a $schema keyword, and an overridden specification_version 81s 1..4 81s ok 8 - traverse with overridden specification_version 81s # Subtest: traverse with overridden metaschema_uri 81s ok 1 - metaschema_uri is not a known uri 81s ok 2 - boolean schema: metaschema_uri is overridden with a bad schema: same errors are returned 81s ok 3 - object schema: metaschema_uri is overridden with a bad schema: same errors are returned 81s ok 4 - metaschema_uri is overridden with a bad schema and there is a traversal path: errors contain the right locations 81s ok 5 - determined specification version and vocabularies to use for this schema from override 81s ok 6 - determined specification version and vocabularies to use for this schema from $schema keyword 81s ok 7 - when $schema keyword is used, custom metaschema_uri is never parsed, so there are no errors 81s 1..7 81s ok 9 - traverse with overridden metaschema_uri 81s # Subtest: start traversing below the document root 81s ok 1 - identified the overridden location of all errors during traverse 81s ok 2 - identifiers are correctly extracted when traversing below the document root 81s ok 3 - identifiers are correctly extracted when traversing below the document root, with anchor 81s 1..3 81s ok 10 - start traversing below the document root 81s 1..10 81s ok 81s t/type.t ................................ 81s # Subtest: inflated data, type: array 81s ok 1 - is_type("array", []) is true 81s ok 2 - get_type([]) = array 81s ok 3 - is_type("boolean", []) is false 81s ok 4 - is_type("integer", []) is false 81s ok 5 - is_type("null", []) is false 81s ok 6 - is_type("number", []) is false 81s ok 7 - is_type("object", []) is false 81s ok 8 - is_type("string", []) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("array", [1]) is true 81s ok 11 - get_type([1]) = array 81s ok 12 - is_type("boolean", [1]) is false 81s ok 13 - is_type("integer", [1]) is false 81s ok 14 - is_type("null", [1]) is false 81s ok 15 - is_type("number", [1]) is false 81s ok 16 - is_type("object", [1]) is false 81s ok 17 - is_type("string", [1]) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s 1..18 81s ok 1 - inflated data, type: array 81s # Subtest: inflated data, type: boolean 81s ok 1 - is_type("boolean", false) is true 81s ok 2 - get_type(false) = boolean 81s ok 3 - is_type("array", false) is false 81s ok 4 - is_type("integer", false) is false 81s ok 5 - is_type("null", false) is false 81s ok 6 - is_type("number", false) is false 81s ok 7 - is_type("object", false) is false 81s ok 8 - is_type("string", false) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("boolean", true) is true 81s ok 11 - get_type(true) = boolean 81s ok 12 - is_type("array", true) is false 81s ok 13 - is_type("integer", true) is false 81s ok 14 - is_type("null", true) is false 81s ok 15 - is_type("number", true) is false 81s ok 16 - is_type("object", true) is false 81s ok 17 - is_type("string", true) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s 1..18 81s ok 2 - inflated data, type: boolean 81s # Subtest: inflated data, type: integer 81s ok 1 - is_type("integer", 0) is true 81s ok 2 - is_type("number", 0) is true 81s ok 3 - get_type(0) = integer 81s ok 4 - is_type("array", 0) is false 81s ok 5 - is_type("boolean", 0) is false 81s ok 6 - is_type("null", 0) is false 81s ok 7 - is_type("object", 0) is false 81s ok 8 - is_type("string", 0) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("integer", -1) is true 81s ok 11 - is_type("number", -1) is true 81s ok 12 - get_type(-1) = integer 81s ok 13 - is_type("array", -1) is false 81s ok 14 - is_type("boolean", -1) is false 81s ok 15 - is_type("null", -1) is false 81s ok 16 - is_type("object", -1) is false 81s ok 17 - is_type("string", -1) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s ok 19 - is_type("integer", 2) is true 81s ok 20 - is_type("number", 2) is true 81s ok 21 - get_type(2) = integer 81s ok 22 - is_type("array", 2) is false 81s ok 23 - is_type("boolean", 2) is false 81s ok 24 - is_type("null", 2) is false 81s ok 25 - is_type("object", 2) is false 81s ok 26 - is_type("string", 2) is false 81s ok 27 - data is not tampered with while it is tested (not dualvar) 81s ok 28 - is_type("integer", 2.0) is true 81s ok 29 - is_type("number", 2.0) is true 81s ok 30 - get_type(2.0) = integer 81s ok 31 - is_type("array", 2.0) is false 81s ok 32 - is_type("boolean", 2.0) is false 81s ok 33 - is_type("null", 2.0) is false 81s ok 34 - is_type("object", 2.0) is false 81s ok 35 - is_type("string", 2.0) is false 81s ok 36 - data is not tampered with while it is tested (not dualvar) 81s ok 37 - is_type("integer", 2147483647) is true 81s ok 38 - is_type("number", 2147483647) is true 81s ok 39 - get_type(2147483647) = integer 81s ok 40 - is_type("array", 2147483647) is false 81s ok 41 - is_type("boolean", 2147483647) is false 81s ok 42 - is_type("null", 2147483647) is false 81s ok 43 - is_type("object", 2147483647) is false 81s ok 44 - is_type("string", 2147483647) is false 81s ok 45 - data is not tampered with while it is tested (not dualvar) 81s ok 46 - is_type("integer", 2147483648.0) is true 81s ok 47 - is_type("number", 2147483648.0) is true 81s ok 48 - get_type(2147483648.0) = integer 81s ok 49 - is_type("array", 2147483648.0) is false 81s ok 50 - is_type("boolean", 2147483648.0) is false 81s ok 51 - is_type("null", 2147483648.0) is false 81s ok 52 - is_type("object", 2147483648.0) is false 81s ok 53 - is_type("string", 2147483648.0) is false 81s ok 54 - data is not tampered with while it is tested (not dualvar) 81s ok 55 - is_type("integer", 9.22337203685478e+18) is true 81s ok 56 - is_type("number", 9.22337203685478e+18) is true 81s ok 57 - get_type(9.22337203685478e+18) = integer 81s ok 58 - is_type("array", 9.22337203685478e+18) is false 81s ok 59 - is_type("boolean", 9.22337203685478e+18) is false 81s ok 60 - is_type("null", 9.22337203685478e+18) is false 81s ok 61 - is_type("object", 9.22337203685478e+18) is false 81s ok 62 - is_type("string", 9.22337203685478e+18) is false 81s ok 63 - data is not tampered with while it is tested (not dualvar) 81s ok 64 - is_type("integer", 9.22337203685478e+18) is true 81s ok 65 - is_type("number", 9.22337203685478e+18) is true 81s ok 66 - get_type(9.22337203685478e+18) = integer 81s ok 67 - is_type("array", 9.22337203685478e+18) is false 81s ok 68 - is_type("boolean", 9.22337203685478e+18) is false 81s ok 69 - is_type("null", 9.22337203685478e+18) is false 81s ok 70 - is_type("object", 9.22337203685478e+18) is false 81s ok 71 - is_type("string", 9.22337203685478e+18) is false 81s ok 72 - data is not tampered with while it is tested (not dualvar) 81s ok 73 - is_type("integer", 1.84467440737096e+19) is true 81s ok 74 - is_type("number", 1.84467440737096e+19) is true 81s ok 75 - get_type(1.84467440737096e+19) = integer 81s ok 76 - is_type("array", 1.84467440737096e+19) is false 81s ok 77 - is_type("boolean", 1.84467440737096e+19) is false 81s ok 78 - is_type("null", 1.84467440737096e+19) is false 81s ok 79 - is_type("object", 1.84467440737096e+19) is false 81s ok 80 - is_type("string", 1.84467440737096e+19) is false 81s ok 81 - data is not tampered with while it is tested (not dualvar) 81s ok 82 - is_type("integer", 3.68934881474191e+19) is true 81s ok 83 - is_type("number", 3.68934881474191e+19) is true 81s ok 84 - get_type(3.68934881474191e+19) = integer 81s ok 85 - is_type("array", 3.68934881474191e+19) is false 81s ok 86 - is_type("boolean", 3.68934881474191e+19) is false 81s ok 87 - is_type("null", 3.68934881474191e+19) is false 81s ok 88 - is_type("object", 3.68934881474191e+19) is false 81s ok 89 - is_type("string", 3.68934881474191e+19) is false 81s ok 90 - data is not tampered with while it is tested (not dualvar) 81s ok 91 - is_type("integer", 1000000000000000) is true 81s ok 92 - is_type("number", 1000000000000000) is true 81s ok 93 - get_type(1000000000000000) = integer 81s ok 94 - is_type("array", 1000000000000000) is false 81s ok 95 - is_type("boolean", 1000000000000000) is false 81s ok 96 - is_type("null", 1000000000000000) is false 81s ok 97 - is_type("object", 1000000000000000) is false 81s ok 98 - is_type("string", 1000000000000000) is false 81s ok 99 - data is not tampered with while it is tested (not dualvar) 81s ok 100 - is_type("integer", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 81s ok 101 - is_type("number", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 81s ok 102 - get_type(Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 81s ok 103 - is_type("array", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 104 - is_type("boolean", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 105 - is_type("null", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 106 - is_type("object", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 107 - is_type("string", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 108 - data is not tampered with while it is tested (not dualvar) 81s ok 109 - is_type("integer", Math::BigInt->new('1')) is true 81s ok 110 - is_type("number", Math::BigInt->new('1')) is true 81s ok 111 - get_type(Math::BigInt->new('1')) = integer 81s ok 112 - is_type("array", Math::BigInt->new('1')) is false 81s ok 113 - is_type("boolean", Math::BigInt->new('1')) is false 81s ok 114 - is_type("null", Math::BigInt->new('1')) is false 81s ok 115 - is_type("object", Math::BigInt->new('1')) is false 81s ok 116 - is_type("string", Math::BigInt->new('1')) is false 81s ok 117 - data is not tampered with while it is tested (not dualvar) 81s ok 118 - is_type("integer", Math::BigInt->new('1')) is true 81s ok 119 - is_type("number", Math::BigInt->new('1')) is true 81s ok 120 - get_type(Math::BigInt->new('1')) = integer 81s ok 121 - is_type("array", Math::BigInt->new('1')) is false 81s ok 122 - is_type("boolean", Math::BigInt->new('1')) is false 81s ok 123 - is_type("null", Math::BigInt->new('1')) is false 81s ok 124 - is_type("object", Math::BigInt->new('1')) is false 81s ok 125 - is_type("string", Math::BigInt->new('1')) is false 81s ok 126 - data is not tampered with while it is tested (not dualvar) 81s ok 127 - is_type("integer", Math::BigInt->new('12345123451234512345')) is true 81s ok 128 - is_type("number", Math::BigInt->new('12345123451234512345')) is true 81s ok 129 - get_type(Math::BigInt->new('12345123451234512345')) = integer 81s ok 130 - is_type("array", Math::BigInt->new('12345123451234512345')) is false 81s ok 131 - is_type("boolean", Math::BigInt->new('12345123451234512345')) is false 81s ok 132 - is_type("null", Math::BigInt->new('12345123451234512345')) is false 81s ok 133 - is_type("object", Math::BigInt->new('12345123451234512345')) is false 81s ok 134 - is_type("string", Math::BigInt->new('12345123451234512345')) is false 81s ok 135 - data is not tampered with while it is tested (not dualvar) 81s ok 136 - is_type("integer", Math::BigFloat->new('12345123451234512345')) is true 81s ok 137 - is_type("number", Math::BigFloat->new('12345123451234512345')) is true 81s ok 138 - get_type(Math::BigFloat->new('12345123451234512345')) = integer 81s ok 139 - is_type("array", Math::BigFloat->new('12345123451234512345')) is false 81s ok 140 - is_type("boolean", Math::BigFloat->new('12345123451234512345')) is false 81s ok 141 - is_type("null", Math::BigFloat->new('12345123451234512345')) is false 81s ok 142 - is_type("object", Math::BigFloat->new('12345123451234512345')) is false 81s ok 143 - is_type("string", Math::BigFloat->new('12345123451234512345')) is false 81s ok 144 - data is not tampered with while it is tested (not dualvar) 81s ok 145 - is_type("integer", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 81s ok 146 - is_type("number", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 81s ok 147 - get_type(Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 81s ok 148 - is_type("array", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 149 - is_type("boolean", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 150 - is_type("null", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 151 - is_type("object", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 152 - is_type("string", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 153 - data is not tampered with while it is tested (not dualvar) 81s ok 154 - is_type("integer", Math::BigFloat->new('20000000000000')) is true 81s ok 155 - is_type("number", Math::BigFloat->new('20000000000000')) is true 81s ok 156 - get_type(Math::BigFloat->new('20000000000000')) = integer 81s ok 157 - is_type("array", Math::BigFloat->new('20000000000000')) is false 81s ok 158 - is_type("boolean", Math::BigFloat->new('20000000000000')) is false 81s ok 159 - is_type("null", Math::BigFloat->new('20000000000000')) is false 81s ok 160 - is_type("object", Math::BigFloat->new('20000000000000')) is false 81s ok 161 - is_type("string", Math::BigFloat->new('20000000000000')) is false 81s ok 162 - data is not tampered with while it is tested (not dualvar) 81s ok 163 - is_type("integer", Math::BigFloat->new('20')) is true 81s ok 164 - is_type("number", Math::BigFloat->new('20')) is true 81s ok 165 - get_type(Math::BigFloat->new('20')) = integer 81s ok 166 - is_type("array", Math::BigFloat->new('20')) is false 81s ok 167 - is_type("boolean", Math::BigFloat->new('20')) is false 81s ok 168 - is_type("null", Math::BigFloat->new('20')) is false 81s ok 169 - is_type("object", Math::BigFloat->new('20')) is false 81s ok 170 - is_type("string", Math::BigFloat->new('20')) is false 81s ok 171 - data is not tampered with while it is tested (not dualvar) 81s ok 172 - is_type("integer", Math::BigFloat->new('1')) is true 81s ok 173 - is_type("number", Math::BigFloat->new('1')) is true 81s ok 174 - get_type(Math::BigFloat->new('1')) = integer 81s ok 175 - is_type("array", Math::BigFloat->new('1')) is false 81s ok 176 - is_type("boolean", Math::BigFloat->new('1')) is false 81s ok 177 - is_type("null", Math::BigFloat->new('1')) is false 81s ok 178 - is_type("object", Math::BigFloat->new('1')) is false 81s ok 179 - is_type("string", Math::BigFloat->new('1')) is false 81s ok 180 - data is not tampered with while it is tested (not dualvar) 81s ok 181 - is_type("integer", Math::BigFloat->new('1')) is true 81s ok 182 - is_type("number", Math::BigFloat->new('1')) is true 81s ok 183 - get_type(Math::BigFloat->new('1')) = integer 81s ok 184 - is_type("array", Math::BigFloat->new('1')) is false 81s ok 185 - is_type("boolean", Math::BigFloat->new('1')) is false 81s ok 186 - is_type("null", Math::BigFloat->new('1')) is false 81s ok 187 - is_type("object", Math::BigFloat->new('1')) is false 81s ok 188 - is_type("string", Math::BigFloat->new('1')) is false 81s ok 189 - data is not tampered with while it is tested (not dualvar) 81s 1..189 81s ok 3 - inflated data, type: integer 81s # Subtest: inflated data, type: null 81s ok 1 - is_type("null", null) is true 81s ok 2 - get_type(null) = null 81s ok 3 - is_type("array", null) is false 81s ok 4 - is_type("boolean", null) is false 81s ok 5 - is_type("integer", null) is false 81s ok 6 - is_type("number", null) is false 81s ok 7 - is_type("object", null) is false 81s ok 8 - is_type("string", null) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s 1..9 81s ok 4 - inflated data, type: null 81s # Subtest: inflated data, type: number 81s ok 1 - is_type("number", 3.1) is true 81s ok 2 - get_type(3.1) = number 81s ok 3 - is_type("array", 3.1) is false 81s ok 4 - is_type("boolean", 3.1) is false 81s ok 5 - is_type("integer", 3.1) is false 81s ok 6 - is_type("null", 3.1) is false 81s ok 7 - is_type("object", 3.1) is false 81s ok 8 - is_type("string", 3.1) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("number", 12345678901.2) is true 81s ok 11 - get_type(12345678901.2) = number 81s ok 12 - is_type("array", 12345678901.2) is false 81s ok 13 - is_type("boolean", 12345678901.2) is false 81s ok 14 - is_type("integer", 12345678901.2) is false 81s ok 15 - is_type("null", 12345678901.2) is false 81s ok 16 - is_type("object", 12345678901.2) is false 81s ok 17 - is_type("string", 12345678901.2) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s ok 19 - is_type("number", Math::BigFloat->new('0.123')) is true 81s ok 20 - get_type(Math::BigFloat->new('0.123')) = number 81s ok 21 - is_type("array", Math::BigFloat->new('0.123')) is false 81s ok 22 - is_type("boolean", Math::BigFloat->new('0.123')) is false 81s ok 23 - is_type("integer", Math::BigFloat->new('0.123')) is false 81s ok 24 - is_type("null", Math::BigFloat->new('0.123')) is false 81s ok 25 - is_type("object", Math::BigFloat->new('0.123')) is false 81s ok 26 - is_type("string", Math::BigFloat->new('0.123')) is false 81s ok 27 - data is not tampered with while it is tested (not dualvar) 81s ok 28 - is_type("number", Math::BigFloat->new('12345123451234512345.2')) is true 81s ok 29 - get_type(Math::BigFloat->new('12345123451234512345.2')) = number 81s ok 30 - is_type("array", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 31 - is_type("boolean", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 32 - is_type("integer", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 33 - is_type("null", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 34 - is_type("object", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 35 - is_type("string", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 36 - data is not tampered with while it is tested (not dualvar) 81s 1..36 81s ok 5 - inflated data, type: number 81s # Subtest: inflated data, type: object 81s ok 1 - is_type("object", {}) is true 81s ok 2 - get_type({}) = object 81s ok 3 - is_type("array", {}) is false 81s ok 4 - is_type("boolean", {}) is false 81s ok 5 - is_type("integer", {}) is false 81s ok 6 - is_type("null", {}) is false 81s ok 7 - is_type("number", {}) is false 81s ok 8 - is_type("string", {}) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("object", {"a" : 1}) is true 81s ok 11 - get_type({"a" : 1}) = object 81s ok 12 - is_type("array", {"a" : 1}) is false 81s ok 13 - is_type("boolean", {"a" : 1}) is false 81s ok 14 - is_type("integer", {"a" : 1}) is false 81s ok 15 - is_type("null", {"a" : 1}) is false 81s ok 16 - is_type("number", {"a" : 1}) is false 81s ok 17 - is_type("string", {"a" : 1}) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s 1..18 81s ok 6 - inflated data, type: object 81s # Subtest: inflated data, type: string 81s ok 1 - is_type("string", "") is true 81s ok 2 - get_type("") = string 81s ok 3 - is_type("array", "") is false 81s ok 4 - is_type("boolean", "") is false 81s ok 5 - is_type("integer", "") is false 81s ok 6 - is_type("null", "") is false 81s ok 7 - is_type("number", "") is false 81s ok 8 - is_type("object", "") is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("string", "0") is true 81s ok 11 - get_type("0") = string 81s ok 12 - is_type("array", "0") is false 81s ok 13 - is_type("boolean", "0") is false 81s ok 14 - is_type("integer", "0") is false 81s ok 15 - is_type("null", "0") is false 81s ok 16 - is_type("number", "0") is false 81s ok 17 - is_type("object", "0") is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s ok 19 - is_type("string", "-1") is true 81s ok 20 - get_type("-1") = string 81s ok 21 - is_type("array", "-1") is false 81s ok 22 - is_type("boolean", "-1") is false 81s ok 23 - is_type("integer", "-1") is false 81s ok 24 - is_type("null", "-1") is false 81s ok 25 - is_type("number", "-1") is false 81s ok 26 - is_type("object", "-1") is false 81s ok 27 - data is not tampered with while it is tested (not dualvar) 81s ok 28 - is_type("string", "2") is true 81s ok 29 - get_type("2") = string 81s ok 30 - is_type("array", "2") is false 81s ok 31 - is_type("boolean", "2") is false 81s ok 32 - is_type("integer", "2") is false 81s ok 33 - is_type("null", "2") is false 81s ok 34 - is_type("number", "2") is false 81s ok 35 - is_type("object", "2") is false 81s ok 36 - data is not tampered with while it is tested (not dualvar) 81s ok 37 - is_type("string", "2.0") is true 81s ok 38 - get_type("2.0") = string 81s ok 39 - is_type("array", "2.0") is false 81s ok 40 - is_type("boolean", "2.0") is false 81s ok 41 - is_type("integer", "2.0") is false 81s ok 42 - is_type("null", "2.0") is false 81s ok 43 - is_type("number", "2.0") is false 81s ok 44 - is_type("object", "2.0") is false 81s ok 45 - data is not tampered with while it is tested (not dualvar) 81s ok 46 - is_type("string", "3.1") is true 81s ok 47 - get_type("3.1") = string 81s ok 48 - is_type("array", "3.1") is false 81s ok 49 - is_type("boolean", "3.1") is false 81s ok 50 - is_type("integer", "3.1") is false 81s ok 51 - is_type("null", "3.1") is false 81s ok 52 - is_type("number", "3.1") is false 81s ok 53 - is_type("object", "3.1") is false 81s ok 54 - data is not tampered with while it is tested (not dualvar) 81s ok 55 - is_type("string", "école") is true 81s ok 56 - get_type("école") = string 81s ok 57 - is_type("array", "école") is false 81s ok 58 - is_type("boolean", "école") is false 81s ok 59 - is_type("integer", "école") is false 81s ok 60 - is_type("null", "école") is false 81s ok 61 - is_type("number", "école") is false 81s ok 62 - is_type("object", "école") is false 81s ok 63 - data is not tampered with while it is tested (not dualvar) 81s ok 64 - is_type("string", "ಠ_ಠ") is true 81s ok 65 - get_type("ಠ_ಠ") = string 81s ok 66 - is_type("array", "ಠ_ಠ") is false 81s ok 67 - is_type("boolean", "ಠ_ಠ") is false 81s ok 68 - is_type("integer", "ಠ_ಠ") is false 81s ok 69 - is_type("null", "ಠ_ಠ") is false 81s ok 70 - is_type("number", "ಠ_ಠ") is false 81s ok 71 - is_type("object", "ಠ_ಠ") is false 81s ok 72 - data is not tampered with while it is tested (not dualvar) 81s 1..72 81s ok 7 - inflated data, type: string 81s # Subtest: JSON-encoded data, type: array 81s ok 1 - is_type("array", []) is true 81s ok 2 - get_type([]) = array 81s ok 3 - is_type("boolean", []) is false 81s ok 4 - is_type("integer", []) is false 81s ok 5 - is_type("null", []) is false 81s ok 6 - is_type("number", []) is false 81s ok 7 - is_type("object", []) is false 81s ok 8 - is_type("string", []) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("array", [1]) is true 81s ok 11 - get_type([1]) = array 81s ok 12 - is_type("boolean", [1]) is false 81s ok 13 - is_type("integer", [1]) is false 81s ok 14 - is_type("null", [1]) is false 81s ok 15 - is_type("number", [1]) is false 81s ok 16 - is_type("object", [1]) is false 81s ok 17 - is_type("string", [1]) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s 1..18 81s ok 8 - JSON-encoded data, type: array 81s # Subtest: JSON-encoded data, type: boolean 81s ok 1 - is_type("boolean", false) is true 81s ok 2 - get_type(false) = boolean 81s ok 3 - is_type("array", false) is false 81s ok 4 - is_type("integer", false) is false 81s ok 5 - is_type("null", false) is false 81s ok 6 - is_type("number", false) is false 81s ok 7 - is_type("object", false) is false 81s ok 8 - is_type("string", false) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("boolean", true) is true 81s ok 11 - get_type(true) = boolean 81s ok 12 - is_type("array", true) is false 81s ok 13 - is_type("integer", true) is false 81s ok 14 - is_type("null", true) is false 81s ok 15 - is_type("number", true) is false 81s ok 16 - is_type("object", true) is false 81s ok 17 - is_type("string", true) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s 1..18 81s ok 9 - JSON-encoded data, type: boolean 81s # Subtest: JSON-encoded data, type: integer 81s ok 1 - is_type("integer", 0) is true 81s ok 2 - is_type("number", 0) is true 81s ok 3 - get_type(0) = integer 81s ok 4 - is_type("array", 0) is false 81s ok 5 - is_type("boolean", 0) is false 81s ok 6 - is_type("null", 0) is false 81s ok 7 - is_type("object", 0) is false 81s ok 8 - is_type("string", 0) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("integer", -1) is true 81s ok 11 - is_type("number", -1) is true 81s ok 12 - get_type(-1) = integer 81s ok 13 - is_type("array", -1) is false 81s ok 14 - is_type("boolean", -1) is false 81s ok 15 - is_type("null", -1) is false 81s ok 16 - is_type("object", -1) is false 81s ok 17 - is_type("string", -1) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s ok 19 - is_type("integer", Math::BigFloat->new('2')) is true 81s ok 20 - is_type("number", Math::BigFloat->new('2')) is true 81s ok 21 - get_type(Math::BigFloat->new('2')) = integer 81s ok 22 - is_type("array", Math::BigFloat->new('2')) is false 81s ok 23 - is_type("boolean", Math::BigFloat->new('2')) is false 81s ok 24 - is_type("null", Math::BigFloat->new('2')) is false 81s ok 25 - is_type("object", Math::BigFloat->new('2')) is false 81s ok 26 - is_type("string", Math::BigFloat->new('2')) is false 81s ok 27 - data is not tampered with while it is tested (not dualvar) 81s ok 28 - is_type("integer", 2147483647) is true 81s ok 29 - is_type("number", 2147483647) is true 81s ok 30 - get_type(2147483647) = integer 81s ok 31 - is_type("array", 2147483647) is false 81s ok 32 - is_type("boolean", 2147483647) is false 81s ok 33 - is_type("null", 2147483647) is false 81s ok 34 - is_type("object", 2147483647) is false 81s ok 35 - is_type("string", 2147483647) is false 81s ok 36 - data is not tampered with while it is tested (not dualvar) 81s ok 37 - is_type("integer", 2147483648) is true 81s ok 38 - is_type("number", 2147483648) is true 81s ok 39 - get_type(2147483648) = integer 81s ok 40 - is_type("array", 2147483648) is false 81s ok 41 - is_type("boolean", 2147483648) is false 81s ok 42 - is_type("null", 2147483648) is false 81s ok 43 - is_type("object", 2147483648) is false 81s ok 44 - is_type("string", 2147483648) is false 81s ok 45 - data is not tampered with while it is tested (not dualvar) 81s ok 46 - is_type("integer", Math::BigFloat->new('9223372036854780000')) is true 81s ok 47 - is_type("number", Math::BigFloat->new('9223372036854780000')) is true 81s ok 48 - get_type(Math::BigFloat->new('9223372036854780000')) = integer 81s ok 49 - is_type("array", Math::BigFloat->new('9223372036854780000')) is false 81s ok 50 - is_type("boolean", Math::BigFloat->new('9223372036854780000')) is false 81s ok 51 - is_type("null", Math::BigFloat->new('9223372036854780000')) is false 81s ok 52 - is_type("object", Math::BigFloat->new('9223372036854780000')) is false 81s ok 53 - is_type("string", Math::BigFloat->new('9223372036854780000')) is false 81s ok 54 - data is not tampered with while it is tested (not dualvar) 81s ok 55 - is_type("integer", Math::BigFloat->new('9223372036854780000')) is true 81s ok 56 - is_type("number", Math::BigFloat->new('9223372036854780000')) is true 81s ok 57 - get_type(Math::BigFloat->new('9223372036854780000')) = integer 81s ok 58 - is_type("array", Math::BigFloat->new('9223372036854780000')) is false 81s ok 59 - is_type("boolean", Math::BigFloat->new('9223372036854780000')) is false 81s ok 60 - is_type("null", Math::BigFloat->new('9223372036854780000')) is false 81s ok 61 - is_type("object", Math::BigFloat->new('9223372036854780000')) is false 81s ok 62 - is_type("string", Math::BigFloat->new('9223372036854780000')) is false 81s ok 63 - data is not tampered with while it is tested (not dualvar) 81s ok 64 - is_type("integer", Math::BigFloat->new('18446744073709600000')) is true 81s ok 65 - is_type("number", Math::BigFloat->new('18446744073709600000')) is true 81s ok 66 - get_type(Math::BigFloat->new('18446744073709600000')) = integer 81s ok 67 - is_type("array", Math::BigFloat->new('18446744073709600000')) is false 81s ok 68 - is_type("boolean", Math::BigFloat->new('18446744073709600000')) is false 81s ok 69 - is_type("null", Math::BigFloat->new('18446744073709600000')) is false 81s ok 70 - is_type("object", Math::BigFloat->new('18446744073709600000')) is false 81s ok 71 - is_type("string", Math::BigFloat->new('18446744073709600000')) is false 81s ok 72 - data is not tampered with while it is tested (not dualvar) 81s ok 73 - is_type("integer", Math::BigFloat->new('36893488147419100000')) is true 81s ok 74 - is_type("number", Math::BigFloat->new('36893488147419100000')) is true 81s ok 75 - get_type(Math::BigFloat->new('36893488147419100000')) = integer 81s ok 76 - is_type("array", Math::BigFloat->new('36893488147419100000')) is false 81s ok 77 - is_type("boolean", Math::BigFloat->new('36893488147419100000')) is false 81s ok 78 - is_type("null", Math::BigFloat->new('36893488147419100000')) is false 81s ok 79 - is_type("object", Math::BigFloat->new('36893488147419100000')) is false 81s ok 80 - is_type("string", Math::BigFloat->new('36893488147419100000')) is false 81s ok 81 - data is not tampered with while it is tested (not dualvar) 81s ok 82 - is_type("integer", 1000000000000000) is true 81s ok 83 - is_type("number", 1000000000000000) is true 81s ok 84 - get_type(1000000000000000) = integer 81s ok 85 - is_type("array", 1000000000000000) is false 81s ok 86 - is_type("boolean", 1000000000000000) is false 81s ok 87 - is_type("null", 1000000000000000) is false 81s ok 88 - is_type("object", 1000000000000000) is false 81s ok 89 - is_type("string", 1000000000000000) is false 81s ok 90 - data is not tampered with while it is tested (not dualvar) 81s ok 91 - is_type("integer", Math::BigFloat->new('20')) is true 81s ok 92 - is_type("number", Math::BigFloat->new('20')) is true 81s ok 93 - get_type(Math::BigFloat->new('20')) = integer 81s ok 94 - is_type("array", Math::BigFloat->new('20')) is false 81s ok 95 - is_type("boolean", Math::BigFloat->new('20')) is false 81s ok 96 - is_type("null", Math::BigFloat->new('20')) is false 81s ok 97 - is_type("object", Math::BigFloat->new('20')) is false 81s ok 98 - is_type("string", Math::BigFloat->new('20')) is false 81s ok 99 - data is not tampered with while it is tested (not dualvar) 81s ok 100 - is_type("integer", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 81s ok 101 - is_type("number", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 81s ok 102 - get_type(Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 81s ok 103 - is_type("array", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 104 - is_type("boolean", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 105 - is_type("null", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 106 - is_type("object", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 107 - is_type("string", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 81s ok 108 - data is not tampered with while it is tested (not dualvar) 81s ok 109 - is_type("integer", Math::BigFloat->new('12345123451234512345')) is true 81s ok 110 - is_type("number", Math::BigFloat->new('12345123451234512345')) is true 81s ok 111 - get_type(Math::BigFloat->new('12345123451234512345')) = integer 81s ok 112 - is_type("array", Math::BigFloat->new('12345123451234512345')) is false 81s ok 113 - is_type("boolean", Math::BigFloat->new('12345123451234512345')) is false 81s ok 114 - is_type("null", Math::BigFloat->new('12345123451234512345')) is false 81s ok 115 - is_type("object", Math::BigFloat->new('12345123451234512345')) is false 81s ok 116 - is_type("string", Math::BigFloat->new('12345123451234512345')) is false 81s ok 117 - data is not tampered with while it is tested (not dualvar) 81s 1..117 81s ok 10 - JSON-encoded data, type: integer 81s # Subtest: JSON-encoded data, type: null 81s ok 1 - is_type("null", null) is true 81s ok 2 - get_type(null) = null 81s ok 3 - is_type("array", null) is false 81s ok 4 - is_type("boolean", null) is false 81s ok 5 - is_type("integer", null) is false 81s ok 6 - is_type("number", null) is false 81s ok 7 - is_type("object", null) is false 81s ok 8 - is_type("string", null) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s 1..9 81s ok 11 - JSON-encoded data, type: null 81s # Subtest: JSON-encoded data, type: number 81s ok 1 - is_type("number", Math::BigFloat->new('3.1')) is true 81s ok 2 - get_type(Math::BigFloat->new('3.1')) = number 81s ok 3 - is_type("array", Math::BigFloat->new('3.1')) is false 81s ok 4 - is_type("boolean", Math::BigFloat->new('3.1')) is false 81s ok 5 - is_type("integer", Math::BigFloat->new('3.1')) is false 81s ok 6 - is_type("null", Math::BigFloat->new('3.1')) is false 81s ok 7 - is_type("object", Math::BigFloat->new('3.1')) is false 81s ok 8 - is_type("string", Math::BigFloat->new('3.1')) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("number", Math::BigFloat->new('12345678901.2')) is true 81s ok 11 - get_type(Math::BigFloat->new('12345678901.2')) = number 81s ok 12 - is_type("array", Math::BigFloat->new('12345678901.2')) is false 81s ok 13 - is_type("boolean", Math::BigFloat->new('12345678901.2')) is false 81s ok 14 - is_type("integer", Math::BigFloat->new('12345678901.2')) is false 81s ok 15 - is_type("null", Math::BigFloat->new('12345678901.2')) is false 81s ok 16 - is_type("object", Math::BigFloat->new('12345678901.2')) is false 81s ok 17 - is_type("string", Math::BigFloat->new('12345678901.2')) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s ok 19 - is_type("number", Math::BigFloat->new('0.123')) is true 81s ok 20 - get_type(Math::BigFloat->new('0.123')) = number 81s ok 21 - is_type("array", Math::BigFloat->new('0.123')) is false 81s ok 22 - is_type("boolean", Math::BigFloat->new('0.123')) is false 81s ok 23 - is_type("integer", Math::BigFloat->new('0.123')) is false 81s ok 24 - is_type("null", Math::BigFloat->new('0.123')) is false 81s ok 25 - is_type("object", Math::BigFloat->new('0.123')) is false 81s ok 26 - is_type("string", Math::BigFloat->new('0.123')) is false 81s ok 27 - data is not tampered with while it is tested (not dualvar) 81s ok 28 - is_type("number", Math::BigFloat->new('12345123451234512345.2')) is true 81s ok 29 - get_type(Math::BigFloat->new('12345123451234512345.2')) = number 81s ok 30 - is_type("array", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 31 - is_type("boolean", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 32 - is_type("integer", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 33 - is_type("null", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 34 - is_type("object", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 35 - is_type("string", Math::BigFloat->new('12345123451234512345.2')) is false 81s ok 36 - data is not tampered with while it is tested (not dualvar) 81s 1..36 81s ok 12 - JSON-encoded data, type: number 81s # Subtest: JSON-encoded data, type: object 81s ok 1 - is_type("object", {}) is true 81s ok 2 - get_type({}) = object 81s ok 3 - is_type("array", {}) is false 81s ok 4 - is_type("boolean", {}) is false 81s ok 5 - is_type("integer", {}) is false 81s ok 6 - is_type("null", {}) is false 81s ok 7 - is_type("number", {}) is false 81s ok 8 - is_type("string", {}) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("object", {"a" : 1}) is true 81s ok 11 - get_type({"a" : 1}) = object 81s ok 12 - is_type("array", {"a" : 1}) is false 81s ok 13 - is_type("boolean", {"a" : 1}) is false 81s ok 14 - is_type("integer", {"a" : 1}) is false 81s ok 15 - is_type("null", {"a" : 1}) is false 81s ok 16 - is_type("number", {"a" : 1}) is false 81s ok 17 - is_type("string", {"a" : 1}) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s 1..18 81s ok 13 - JSON-encoded data, type: object 81s # Subtest: JSON-encoded data, type: string 81s ok 1 - is_type("string", "") is true 81s ok 2 - get_type("") = string 81s ok 3 - is_type("array", "") is false 81s ok 4 - is_type("boolean", "") is false 81s ok 5 - is_type("integer", "") is false 81s ok 6 - is_type("null", "") is false 81s ok 7 - is_type("number", "") is false 81s ok 8 - is_type("object", "") is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("string", "0") is true 81s ok 11 - get_type("0") = string 81s ok 12 - is_type("array", "0") is false 81s ok 13 - is_type("boolean", "0") is false 81s ok 14 - is_type("integer", "0") is false 81s ok 15 - is_type("null", "0") is false 81s ok 16 - is_type("number", "0") is false 81s ok 17 - is_type("object", "0") is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s ok 19 - is_type("string", "-1") is true 81s ok 20 - get_type("-1") = string 81s ok 21 - is_type("array", "-1") is false 81s ok 22 - is_type("boolean", "-1") is false 81s ok 23 - is_type("integer", "-1") is false 81s ok 24 - is_type("null", "-1") is false 81s ok 25 - is_type("number", "-1") is false 81s ok 26 - is_type("object", "-1") is false 81s ok 27 - data is not tampered with while it is tested (not dualvar) 81s ok 28 - is_type("string", "2.0") is true 81s ok 29 - get_type("2.0") = string 81s ok 30 - is_type("array", "2.0") is false 81s ok 31 - is_type("boolean", "2.0") is false 81s ok 32 - is_type("integer", "2.0") is false 81s ok 33 - is_type("null", "2.0") is false 81s ok 34 - is_type("number", "2.0") is false 81s ok 35 - is_type("object", "2.0") is false 81s ok 36 - data is not tampered with while it is tested (not dualvar) 81s ok 37 - is_type("string", "3.1") is true 81s ok 38 - get_type("3.1") = string 81s ok 39 - is_type("array", "3.1") is false 81s ok 40 - is_type("boolean", "3.1") is false 81s ok 41 - is_type("integer", "3.1") is false 81s ok 42 - is_type("null", "3.1") is false 81s ok 43 - is_type("number", "3.1") is false 81s ok 44 - is_type("object", "3.1") is false 81s ok 45 - data is not tampered with while it is tested (not dualvar) 81s ok 46 - is_type("string", "école") is true 81s ok 47 - get_type("école") = string 81s ok 48 - is_type("array", "école") is false 81s ok 49 - is_type("boolean", "école") is false 81s ok 50 - is_type("integer", "école") is false 81s ok 51 - is_type("null", "école") is false 81s ok 52 - is_type("number", "école") is false 81s ok 53 - is_type("object", "école") is false 81s ok 54 - data is not tampered with while it is tested (not dualvar) 81s ok 55 - is_type("string", "ಠ_ಠ") is true 81s ok 56 - get_type("ಠ_ಠ") = string 81s ok 57 - is_type("array", "ಠ_ಠ") is false 81s ok 58 - is_type("boolean", "ಠ_ಠ") is false 81s ok 59 - is_type("integer", "ಠ_ಠ") is false 81s ok 60 - is_type("null", "ಠ_ಠ") is false 81s ok 61 - is_type("number", "ಠ_ಠ") is false 81s ok 62 - is_type("object", "ಠ_ಠ") is false 81s ok 63 - data is not tampered with while it is tested (not dualvar) 81s 1..63 81s ok 14 - JSON-encoded data, type: string 81s # Subtest: integers and numbers in draft4 81s # Subtest: pre-inflated data 81s ok 1 - is_type("integer", 0) is true 81s ok 2 - is_type("number", 0) is true 81s ok 3 - get_type(0) = integer 81s ok 4 - is_type("null", 0) is false 81s ok 5 - is_type("boolean", 0) is false 81s ok 6 - is_type("object", 0) is false 81s ok 7 - is_type("array", 0) is false 81s ok 8 - is_type("string", 0) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("integer", -1) is true 81s ok 11 - is_type("number", -1) is true 81s ok 12 - get_type(-1) = integer 81s ok 13 - is_type("null", -1) is false 81s ok 14 - is_type("boolean", -1) is false 81s ok 15 - is_type("object", -1) is false 81s ok 16 - is_type("array", -1) is false 81s ok 17 - is_type("string", -1) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s ok 19 - is_type("integer", 2) is true 81s ok 20 - is_type("number", 2) is true 81s ok 21 - get_type(2) = integer 81s ok 22 - is_type("null", 2) is false 81s ok 23 - is_type("boolean", 2) is false 81s ok 24 - is_type("object", 2) is false 81s ok 25 - is_type("array", 2) is false 81s ok 26 - is_type("string", 2) is false 81s ok 27 - data is not tampered with while it is tested (not dualvar) 81s ok 28 - is_type("integer", Math::BigInt->new('2')) is true 81s ok 29 - is_type("number", Math::BigInt->new('2')) is true 81s ok 30 - get_type(Math::BigInt->new('2')) = integer 81s ok 31 - is_type("null", Math::BigInt->new('2')) is false 81s ok 32 - is_type("boolean", Math::BigInt->new('2')) is false 81s ok 33 - is_type("object", Math::BigInt->new('2')) is false 81s ok 34 - is_type("array", Math::BigInt->new('2')) is false 81s ok 35 - is_type("string", Math::BigInt->new('2')) is false 81s ok 36 - data is not tampered with while it is tested (not dualvar) 81s ok 37 - is_type("integer", Math::BigInt->new('1')) is true 81s ok 38 - is_type("number", Math::BigInt->new('1')) is true 81s ok 39 - get_type(Math::BigInt->new('1')) = integer 81s ok 40 - is_type("null", Math::BigInt->new('1')) is false 81s ok 41 - is_type("boolean", Math::BigInt->new('1')) is false 81s ok 42 - is_type("object", Math::BigInt->new('1')) is false 81s ok 43 - is_type("array", Math::BigInt->new('1')) is false 81s ok 44 - is_type("string", Math::BigInt->new('1')) is false 81s ok 45 - data is not tampered with while it is tested (not dualvar) 81s ok 46 - is_type("number", 3.1) is true 81s ok 47 - get_type(3.1) = number 81s ok 48 - is_type("null", 3.1) is false 81s ok 49 - is_type("boolean", 3.1) is false 81s ok 50 - is_type("object", 3.1) is false 81s ok 51 - is_type("array", 3.1) is false 81s ok 52 - is_type("string", 3.1) is false 81s ok 53 - is_type("integer", 3.1) is false 81s ok 54 - data is not tampered with while it is tested (not dualvar) 81s ok 55 - is_type("number", 2.0) is true 81s ok 56 - get_type(2.0) = number 81s ok 57 - is_type("null", 2.0) is false 81s ok 58 - is_type("boolean", 2.0) is false 81s ok 59 - is_type("object", 2.0) is false 81s ok 60 - is_type("array", 2.0) is false 81s ok 61 - is_type("string", 2.0) is false 81s ok 62 - is_type("integer", 2.0) is false 81s ok 63 - data is not tampered with while it is tested (not dualvar) 81s ok 64 - is_type("number", 12345678901.2) is true 81s ok 65 - get_type(12345678901.2) = number 81s ok 66 - is_type("null", 12345678901.2) is false 81s ok 67 - is_type("boolean", 12345678901.2) is false 81s ok 68 - is_type("object", 12345678901.2) is false 81s ok 69 - is_type("array", 12345678901.2) is false 81s ok 70 - is_type("string", 12345678901.2) is false 81s ok 71 - is_type("integer", 12345678901.2) is false 81s ok 72 - data is not tampered with while it is tested (not dualvar) 81s ok 73 - is_type("number", Math::BigFloat->new('0.123')) is true 81s ok 74 - get_type(Math::BigFloat->new('0.123')) = number 81s ok 75 - is_type("null", Math::BigFloat->new('0.123')) is false 81s ok 76 - is_type("boolean", Math::BigFloat->new('0.123')) is false 81s ok 77 - is_type("object", Math::BigFloat->new('0.123')) is false 81s ok 78 - is_type("array", Math::BigFloat->new('0.123')) is false 81s ok 79 - is_type("string", Math::BigFloat->new('0.123')) is false 81s ok 80 - is_type("integer", Math::BigFloat->new('0.123')) is false 81s ok 81 - data is not tampered with while it is tested (not dualvar) 81s ok 82 - is_type("number", Math::BigFloat->new('2')) is true 81s ok 83 - get_type(Math::BigFloat->new('2')) = number 81s ok 84 - is_type("null", Math::BigFloat->new('2')) is false 81s ok 85 - is_type("boolean", Math::BigFloat->new('2')) is false 81s ok 86 - is_type("object", Math::BigFloat->new('2')) is false 81s ok 87 - is_type("array", Math::BigFloat->new('2')) is false 81s ok 88 - is_type("string", Math::BigFloat->new('2')) is false 81s ok 89 - is_type("integer", Math::BigFloat->new('2')) is false 81s ok 90 - data is not tampered with while it is tested (not dualvar) 81s 1..90 81s ok 1 - pre-inflated data 81s # Subtest: data from encoded json 81s ok 1 - is_type("integer", 0) is true 81s ok 2 - is_type("number", 0) is true 81s ok 3 - get_type(0) = integer 81s ok 4 - is_type("null", 0) is false 81s ok 5 - is_type("boolean", 0) is false 81s ok 6 - is_type("object", 0) is false 81s ok 7 - is_type("array", 0) is false 81s ok 8 - is_type("string", 0) is false 81s ok 9 - data is not tampered with while it is tested (not dualvar) 81s ok 10 - is_type("integer", -1) is true 81s ok 11 - is_type("number", -1) is true 81s ok 12 - get_type(-1) = integer 81s ok 13 - is_type("null", -1) is false 81s ok 14 - is_type("boolean", -1) is false 81s ok 15 - is_type("object", -1) is false 81s ok 16 - is_type("array", -1) is false 81s ok 17 - is_type("string", -1) is false 81s ok 18 - data is not tampered with while it is tested (not dualvar) 81s ok 19 - is_type("integer", 1000000000000000) is true 81s ok 20 - is_type("number", 1000000000000000) is true 81s ok 21 - get_type(1000000000000000) = integer 81s ok 22 - is_type("null", 1000000000000000) is false 81s ok 23 - is_type("boolean", 1000000000000000) is false 81s ok 24 - is_type("object", 1000000000000000) is false 81s ok 25 - is_type("array", 1000000000000000) is false 81s ok 26 - is_type("string", 1000000000000000) is false 81s ok 27 - data is not tampered with while it is tested (not dualvar) 81s ok 28 - is_type("number", Math::BigFloat->new('3.1')) is true 81s ok 29 - get_type(Math::BigFloat->new('3.1')) = number 81s ok 30 - is_type("null", Math::BigFloat->new('3.1')) is false 81s ok 31 - is_type("boolean", Math::BigFloat->new('3.1')) is false 81s ok 32 - is_type("object", Math::BigFloat->new('3.1')) is false 81s ok 33 - is_type("array", Math::BigFloat->new('3.1')) is false 81s ok 34 - is_type("string", Math::BigFloat->new('3.1')) is false 81s ok 35 - is_type("integer", Math::BigFloat->new('3.1')) is false 81s ok 36 - data is not tampered with while it is tested (not dualvar) 81s ok 37 - is_type("number", Math::BigFloat->new('12345678901.2')) is true 81s ok 38 - get_type(Math::BigFloat->new('12345678901.2')) = number 81s ok 39 - is_type("null", Math::BigFloat->new('12345678901.2')) is false 81s ok 40 - is_type("boolean", Math::BigFloat->new('12345678901.2')) is false 81s ok 41 - is_type("object", Math::BigFloat->new('12345678901.2')) is false 81s ok 42 - is_type("array", Math::BigFloat->new('12345678901.2')) is false 81s ok 43 - is_type("string", Math::BigFloat->new('12345678901.2')) is false 81s ok 44 - is_type("integer", Math::BigFloat->new('12345678901.2')) is false 81s ok 45 - data is not tampered with while it is tested (not dualvar) 81s ok 46 - is_type("number", Math::BigFloat->new('0.123')) is true 81s ok 47 - get_type(Math::BigFloat->new('0.123')) = number 81s ok 48 - is_type("null", Math::BigFloat->new('0.123')) is false 81s ok 49 - is_type("boolean", Math::BigFloat->new('0.123')) is false 81s ok 50 - is_type("object", Math::BigFloat->new('0.123')) is false 81s ok 51 - is_type("array", Math::BigFloat->new('0.123')) is false 81s ok 52 - is_type("string", Math::BigFloat->new('0.123')) is false 81s ok 53 - is_type("integer", Math::BigFloat->new('0.123')) is false 81s ok 54 - data is not tampered with while it is tested (not dualvar) 81s ok 55 - is_type("number", Math::BigFloat->new('2')) is true 81s ok 56 - get_type(Math::BigFloat->new('2')) = number 81s ok 57 - is_type("null", Math::BigFloat->new('2')) is false 81s ok 58 - is_type("boolean", Math::BigFloat->new('2')) is false 81s ok 59 - is_type("object", Math::BigFloat->new('2')) is false 81s ok 60 - is_type("array", Math::BigFloat->new('2')) is false 81s ok 61 - is_type("string", Math::BigFloat->new('2')) is false 81s ok 62 - is_type("integer", Math::BigFloat->new('2')) is false 81s ok 63 - data is not tampered with while it is tested (not dualvar) 81s 1..63 81s ok 2 - data from encoded json 81s 1..2 81s ok 15 - integers and numbers in draft4 81s ok 16 - non-existent type does not result in exception 81s # Subtest: ambiguous types 81s # Subtest: integers 81s ok 1 - dualvar integers with different values are ambiguous 81s ok 2 - dualvar integers with different values are not integers 81s ok 3 - dualvar integers with different values are not numbers 81s ok 4 - dualvar integers with different values are not strings 81s ok 5 # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 81s ok 6 - integer that is later used as a string is still identified as a integer 81s ok 7 - integer that is later used as a string is still an integer 81s ok 8 - integer that is later used as a string is still a number 81s ok 9 - integer that is later used as a string is not a string 81s 1..9 81s ok 1 - integers 81s # Subtest: numbers 81s ok 1 - dualvar numbers are ambiguous in get_type 81s ok 2 - dualvar numbers are not integers 81s ok 3 - dualvar numbers are not numbers 81s ok 4 - dualvar numbers are not strings 81s ok 5 - number that is later used as a string is still identified as a number 81s ok 6 - number that is later used as a string is not an integer 81s ok 7 - number that is later used as a string is still a number 81s ok 8 - number that is later used as a string is not a string 81s 1..8 81s ok 2 - numbers 81s # Subtest: strings 81s ok 1 - dualvar strings are ambiguous in get_type 81s ok 2 - dualvar strings are not integers 81s ok 3 - dualvar strings are not numbers 81s ok 4 - dualvar strings are not strings 81s ok 5 - string that is later used as an integer is still identified as a string 81s ok 6 # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 81s ok 7 - string that is later used as an integer is not an integer 81s ok 8 - string that is later used as an integer is not a number 81s ok 9 - string that is later used as an integer is still a string 81s ok 10 - string that is later used as a number is still identified as a string 81s ok 11 - string that is later used as a number is not an integer 81s ok 12 # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 81s ok 13 - string that is later used as a number is not a number 81s ok 14 - string that is later used as a number is still a string 81s 1..14 81s ok 3 - strings 81s 1..3 81s ok 17 - ambiguous types 81s # Subtest: is_type and get_type for references 81s ok 1 - reference to SCALAR type is reported without exception 81s ok 2 - value is a reference to SCALAR 81s ok 3 - value is not a null 81s ok 4 - value is not a object 81s ok 5 - value is not a array 81s ok 6 - value is not a boolean 81s ok 7 - value is not a string 81s ok 8 - value is not a number 81s ok 9 - value is not a integer 81s ok 10 - reference to REF type is reported without exception 81s ok 11 - value is a reference to REF 81s ok 12 - value is not a null 81s ok 13 - value is not a object 81s ok 14 - value is not a array 81s ok 15 - value is not a boolean 81s ok 16 - value is not a string 81s ok 17 - value is not a number 81s ok 18 - value is not a integer 81s ok 19 - reference to CODE type is reported without exception 81s ok 20 - value is a reference to CODE 81s ok 21 - value is not a null 81s ok 22 - value is not a object 81s ok 23 - value is not a array 81s ok 24 - value is not a boolean 81s ok 25 - value is not a string 81s ok 26 - value is not a number 81s ok 27 - value is not a integer 81s ok 28 - reference to GLOB type is reported without exception 81s ok 29 - value is a reference to GLOB 81s ok 30 - value is not a null 81s ok 31 - value is not a object 81s ok 32 - value is not a array 81s ok 33 - value is not a boolean 81s ok 34 - value is not a string 81s ok 35 - value is not a number 81s ok 36 - value is not a integer 81s ok 37 - reference to LVALUE type is reported without exception 81s ok 38 - value is a reference to LVALUE 81s ok 39 - value is not a null 81s ok 40 - value is not a object 81s ok 41 - value is not a array 81s ok 42 - value is not a boolean 81s ok 43 - value is not a string 81s ok 44 - value is not a number 81s ok 45 - value is not a integer 81s ok 46 - reference to VSTRING type is reported without exception 81s ok 47 - value is a reference to VSTRING 81s ok 48 - value is not a null 81s ok 49 - value is not a object 81s ok 50 - value is not a array 81s ok 51 - value is not a boolean 81s ok 52 - value is not a string 81s ok 53 - value is not a number 81s ok 54 - value is not a integer 81s ok 55 - Regexp type is reported without exception 81s ok 56 - value is a Regexp 81s ok 57 - value is not a null 81s ok 58 - value is not a object 81s ok 59 - value is not a array 81s ok 60 - value is not a boolean 81s ok 61 - value is not a string 81s ok 62 - value is not a number 81s ok 63 - value is not a integer 81s ok 64 - IO::File type is reported without exception 81s ok 65 - value is a IO::File 81s ok 66 - value is not a null 81s ok 67 - value is not a object 81s ok 68 - value is not a array 81s ok 69 - value is not a boolean 81s ok 70 - value is not a string 81s ok 71 - value is not a number 81s ok 72 - value is not a integer 81s ok 73 - Foo type is reported without exception 81s ok 74 - value is a Foo 81s ok 75 - value is not a null 81s ok 76 - value is not a object 81s ok 77 - value is not a array 81s ok 78 - value is not a boolean 81s ok 79 - value is not a string 81s ok 80 - value is not a number 81s ok 81 - value is not a integer 81s ok 82 - 0 type is reported without exception 81s ok 83 - value is a 0 81s ok 84 - value is not a null 81s ok 85 - value is not a object 81s ok 86 - value is not a array 81s ok 87 - value is not a boolean 81s ok 88 - value is not a string 81s ok 89 - value is not a number 81s ok 90 - value is not a integer 81s 1..90 81s ok 18 - is_type and get_type for references 81s 1..18 81s ok 81s t/unsupported-keywords.t ................ 81s # 81s # draft6 81s ok 1 - schema with "id" still validates in draft6 81s ok 2 - warned for "id" in draft6 81s # 81s # draft7 81s ok 3 - schema with "id" still validates in draft7 81s ok 4 - warned for "id" in draft7 81s ok 5 - schema with "definitions" validates in draft7 81s ok 6 - did not warn for "definitions" in draft7 81s ok 7 - schema with "dependencies" validates in draft7 81s ok 8 - did not warn for "dependencies" in draft7 81s # 81s # draft2019-09 81s ok 9 - schema with "id" still validates in draft2019-09 81s ok 10 - warned for "id" in draft2019-09 81s ok 11 - schema with "definitions" still validates in draft2019-09 81s ok 12 - warned for "definitions" in draft2019-09 81s ok 13 - schema with "dependencies" still validates in draft2019-09 81s ok 14 - warned for "dependencies" in draft2019-09 81s 1..14 81s ok 82s t/validate-schema.t ..................... 82s ok 1 - validate_schema on simple schema with no $schema keyword 82s ok 2 - validate_schema on schema with metaschema $schema keyword 82s ok 3 - validate_schema with custom metaschema 82s ok 4 - validate_schema with schema that validates against the metaschema, but fails in extra traverse checks 82s 1..4 82s ok 82s t/vocabularies.t ........................ 82s # Subtest: valid keywords 82s ok 1 - draft4, Applicator: calculated keyword list matches hardcoded table 82s ok 2 - draft4, Core: calculated keyword list matches hardcoded table 82s ok 3 - draft4, FormatAnnotation: calculated keyword list matches hardcoded table 82s ok 4 - draft4, MetaData: calculated keyword list matches hardcoded table 82s ok 5 - draft4, Validation: calculated keyword list matches hardcoded table 82s ok 6 - draft6, Applicator: calculated keyword list matches hardcoded table 82s ok 7 - draft6, Core: calculated keyword list matches hardcoded table 82s ok 8 - draft6, FormatAnnotation: calculated keyword list matches hardcoded table 82s ok 9 - draft6, MetaData: calculated keyword list matches hardcoded table 82s ok 10 - draft6, Validation: calculated keyword list matches hardcoded table 82s ok 11 - draft7, Applicator: calculated keyword list matches hardcoded table 82s ok 12 - draft7, Content: calculated keyword list matches hardcoded table 82s ok 13 - draft7, Core: calculated keyword list matches hardcoded table 82s ok 14 - draft7, FormatAnnotation: calculated keyword list matches hardcoded table 82s ok 15 - draft7, MetaData: calculated keyword list matches hardcoded table 82s ok 16 - draft7, Validation: calculated keyword list matches hardcoded table 82s ok 17 - draft2019-09, Applicator: calculated keyword list matches hardcoded table 82s ok 18 - draft2019-09, Content: calculated keyword list matches hardcoded table 82s ok 19 - draft2019-09, Core: calculated keyword list matches hardcoded table 82s ok 20 - draft2019-09, FormatAnnotation: calculated keyword list matches hardcoded table 82s ok 21 - draft2019-09, MetaData: calculated keyword list matches hardcoded table 82s ok 22 - draft2019-09, Validation: calculated keyword list matches hardcoded table 82s ok 23 - draft2020-12, Applicator: calculated keyword list matches hardcoded table 82s ok 24 - draft2020-12, Content: calculated keyword list matches hardcoded table 82s ok 25 - draft2020-12, Core: calculated keyword list matches hardcoded table 82s ok 26 - draft2020-12, FormatAnnotation: calculated keyword list matches hardcoded table 82s ok 27 - draft2020-12, MetaData: calculated keyword list matches hardcoded table 82s ok 28 - draft2020-12, Unevaluated: calculated keyword list matches hardcoded table 82s ok 29 - draft2020-12, Validation: calculated keyword list matches hardcoded table 82s 1..29 82s ok 1 - valid keywords 82s 1..1 82s ok 84s t/zzz-acceptance-draft2019-09-format.t .. 84s # 84s # AUTHOR_TESTING: 84s # AUTOMATED_TESTING: 1 84s # EXTENDED_TESTING: 84s # NO_TODO: 84s # TEST_DIR: 84s # NO_SHORT_CIRCUIT: 84s # 84s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2019-09/optional/format against draft2019-09... 84s # 84s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date-time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 32 - date.json: "validation of date strings" - "a valid date string" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 64 - date.json: "validation of date strings" - "invalid month" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid date string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 73 - duration.json: "validation of duration strings" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 74 - duration.json: "validation of duration strings" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 75 - duration.json: "validation of duration strings" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 76 - duration.json: "validation of duration strings" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 77 - duration.json: "validation of duration strings" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 78 - duration.json: "validation of duration strings" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 79 - duration.json: "validation of duration strings" - "a valid duration string" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 80 - duration.json: "validation of duration strings" - "an invalid duration string" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 81 - duration.json: "validation of duration strings" - "must start with P" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 82 - duration.json: "validation of duration strings" - "no elements present" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 83 - duration.json: "validation of duration strings" - "no time elements present" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 84 - duration.json: "validation of duration strings" - "no date or time elements present" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 85 - duration.json: "validation of duration strings" - "elements out of order" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 86 - duration.json: "validation of duration strings" - "missing time separator" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 87 - duration.json: "validation of duration strings" - "time element in the date position" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 88 - duration.json: "validation of duration strings" - "four years duration" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 89 - duration.json: "validation of duration strings" - "zero time, in seconds" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 90 - duration.json: "validation of duration strings" - "zero time, in days" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 91 - duration.json: "validation of duration strings" - "one month duration" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 92 - duration.json: "validation of duration strings" - "one minute duration" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 93 - duration.json: "validation of duration strings" - "one and a half days, in hours" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 94 - duration.json: "validation of duration strings" - "one and a half days, in days and hours" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 95 - duration.json: "validation of duration strings" - "two weeks" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 96 - duration.json: "validation of duration strings" - "weeks cannot be combined with other units" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 97 - duration.json: "validation of duration strings" - "invalid non-ASCII '২' (a Bengali 2)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 98 - duration.json: "validation of duration strings" - "element without unit" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid duration string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 99 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 100 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 101 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 102 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 103 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 104 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 105 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 106 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 107 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 108 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 109 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 110 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 111 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 112 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 113 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 114 - hostname.json: "validation of host names" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 115 - hostname.json: "validation of host names" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 116 - hostname.json: "validation of host names" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 117 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 118 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 119 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 120 - hostname.json: "validation of host names" - "a valid host name" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 121 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 122 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 123 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 124 - hostname.json: "validation of host names" - "a host name with a component too long" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 125 - hostname.json: "validation of host names" - "starts with hyphen" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 126 - hostname.json: "validation of host names" - "ends with hyphen" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 127 - hostname.json: "validation of host names" - "starts with underscore" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 128 - hostname.json: "validation of host names" - "ends with underscore" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 129 - hostname.json: "validation of host names" - "contains underscore" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 130 - hostname.json: "validation of host names" - "maximum label length" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 131 - hostname.json: "validation of host names" - "exceeds maximum label length" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 132 - hostname.json: "validation of host names" - "single label" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 133 - hostname.json: "validation of host names" - "single label with hyphen" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 134 - hostname.json: "validation of host names" - "single label with digits" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 135 - hostname.json: "validation of host names" - "single label starting with digit" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 136 - hostname.json: "validation of host names" - "single label ending with digit" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 137 - hostname.json: "validation of host names" - "empty string" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 138 - hostname.json: "validation of host names" - "single dot" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 139 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 140 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 141 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 142 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 143 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 144 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 145 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 146 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 147 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 148 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-email string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 149 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 150 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 151 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 152 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 153 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 154 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 155 - idn-hostname.json: "validation of internationalized host names" - "a valid host name (example.test in Hangul)" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 156 - idn-hostname.json: "validation of internationalized host names" - "illegal first char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 157 - idn-hostname.json: "validation of internationalized host names" - "contains illegal char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "실〮례.테스트" 84s # result: 1 84s 1..1 84s } 84s ok 158 - idn-hostname.json: "validation of internationalized host names" - "a host name with a component too long" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 159 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 160 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 161 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "xn--X" 84s # result: 1 84s 1..1 84s } 84s ok 162 - idn-hostname.json: "validation of internationalized host names" - "U-label contains "--" in the 3rd and 4th position" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "XN--aa---o47jg78q" 84s # result: 1 84s 1..1 84s } 84s ok 163 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 164 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 165 - idn-hostname.json: "validation of internationalized host names" - "U-label starts and ends with a dash" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 166 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 167 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 168 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 169 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 170 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 171 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "ـߺ" 84s # result: 1 84s 1..1 84s } 84s ok 172 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "〱〲〳〴〵〮〯〻" 84s # result: 1 84s 1..1 84s } 84s ok 173 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "a·l" 84s # result: 1 84s 1..1 84s } 84s ok 174 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "·l" 84s # result: 1 84s 1..1 84s } 84s ok 175 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "l·a" 84s # result: 1 84s 1..1 84s } 84s ok 176 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "l·" 84s # result: 1 84s 1..1 84s } 84s ok 177 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 178 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "α͵S" 84s # result: 1 84s 1..1 84s } 84s ok 179 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "α͵" 84s # result: 1 84s 1..1 84s } 84s ok 180 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 181 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 182 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "׳ב" 84s # result: 1 84s 1..1 84s } 84s ok 183 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 184 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 185 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "״ב" 84s # result: 1 84s 1..1 84s } 84s ok 186 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 187 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "def・abc" 84s # result: 1 84s 1..1 84s } 84s ok 188 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "idn-hostname" 84s # } 84s # data: "・" 84s # result: 1 84s 1..1 84s } 84s ok 189 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 190 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 191 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 192 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 193 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits not mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 194 - idn-hostname.json: "validation of internationalized host names" - "Extended Arabic-Indic digits not mixed with Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 195 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 196 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 197 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 198 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 199 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER not preceded by Virama but matches regexp" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 200 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 201 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 202 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 203 - idn-hostname.json: "validation of internationalized host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 204 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 205 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false # 84s 1..1 84s } 84s ok 206 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 207 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 208 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 209 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid idn-hostname string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 210 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 211 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 212 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 213 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s # 84s ok 214 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 215 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 216 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 217 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 218 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 219 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 220 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 221 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 222 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 223 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 224 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 225 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 226 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 227 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 228 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 229 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv4 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 230 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 231 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 232 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 233 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 234 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 235 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 236 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 237 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 238 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 239 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 240 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 241 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 242 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 243 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 244 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 245 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 246 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 247 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 248 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 249 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 250 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 251 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 252 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 253 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 254 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 255 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 256 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 257 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 258 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 259 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 260 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 261 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 262 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 263 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 264 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 265 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 266 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 267 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 268 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 269 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid ipv6 string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 270 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 271 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 272 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 273 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 274 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 275 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 276 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 277 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 278 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 279 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "iri-reference" 84s # } 84s # data: "\\\\WINDOWS\\filëßåré" 84s # result: 1 84s 1..1 84s } 84s ok 280 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 281 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 282 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "iri-reference" 84s # } 84s # data: "#ƒräg\\mênt" 84s # result: 1 84s 1..1 84s } 84s # 84s ok 283 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 284 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 285 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 286 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 287 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 288 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 289 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 290 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 291 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 292 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 293 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 294 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "iri" 84s # } 84s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 84s # result: 1 84s 1..1 84s } 84s ok 295 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid iri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid iri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 296 - iri.json: "validation of IRIs" - "an invalid IRI" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid iri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid iri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 297 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid iri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid iri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 298 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 299 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 300 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 301 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 302 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 303 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 304 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 305 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 308 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 309 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 310 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 311 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 312 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 313 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 314 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 315 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 316 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 317 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 318 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 319 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 320 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 321 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 322 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 323 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 324 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 325 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 326 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 327 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 328 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 329 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 330 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 331 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 332 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 333 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 334 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 335 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 336 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 337 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 338 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 339 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 340 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 341 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 342 - regex.json: "validation of regular expressions" - "a valid regular expression" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 343 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid regex string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid regex string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 344 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 345 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 346 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 347 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 348 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 349 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 350 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 351 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 352 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 353 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 354 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 355 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 356 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 357 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 358 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 359 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 360 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid relative-json-pointer string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 361 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s # 84s ok 362 - time.json: "validation of time strings" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 363 - time.json: "validation of time strings" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 364 - time.json: "validation of time strings" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 365 - time.json: "validation of time strings" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 366 - time.json: "validation of time strings" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 367 - time.json: "validation of time strings" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 368 - time.json: "validation of time strings" - "a valid time string" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 369 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 370 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 371 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 372 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 373 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 374 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 375 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 376 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 377 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 378 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 379 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 380 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 381 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 382 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 383 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 384 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 385 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 386 - time.json: "validation of time strings" - "a valid time string with second fraction" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 387 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 388 - time.json: "validation of time strings" - "a valid time string with plus offset" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 389 - time.json: "validation of time strings" - "a valid time string with minus offset" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 390 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 391 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 392 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 393 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 394 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 395 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 396 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 397 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 398 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 399 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 400 - time.json: "validation of time strings" - "an invalid offset indicator" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 401 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 402 - time.json: "validation of time strings" - "no time offset" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 403 - time.json: "validation of time strings" - "no time offset with second fraction" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 404 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 405 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 406 - time.json: "validation of time strings" - "contains letters" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid time string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 407 - unknown.json: "unknown format" - "unknown formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 408 - unknown.json: "unknown format" - "unknown formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 409 - unknown.json: "unknown format" - "unknown formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 410 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 411 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 412 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 413 - unknown.json: "unknown format" - "unknown formats ignore strings" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s # 84s ok 414 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 415 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 416 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 417 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 418 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 419 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 420 - uri-reference.json: "validation of URI References" - "a valid URI" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 421 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 422 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 423 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri-reference string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri-reference string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 424 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 425 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 426 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri-reference string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri-reference string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s # 84s ok 427 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 428 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 429 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 430 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 431 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 432 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 433 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 434 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "uri-template" 84s # } 84s # data: "http://example.com/dictionary/{term:1}/{term" 84s # result: 1 84s 1..1 84s } 84s ok 435 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s ok 436 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true # 84s 1..1 84s } 84s # 84s ok 437 - uri.json: "validation of URIs" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 438 - uri.json: "validation of URIs" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 439 - uri.json: "validation of URIs" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 440 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 441 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 442 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 443 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 444 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 445 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 446 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 447 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 448 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 449 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 450 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 451 - uri.json: "validation of URIs" - "a valid URL " { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 452 - uri.json: "validation of URIs" - "a valid mailto URI" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 453 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 454 - uri.json: "validation of URIs" - "a valid tel URI" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 455 - uri.json: "validation of URIs" - "a valid URN" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 456 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 457 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 458 - uri.json: "validation of URIs" - "an invalid URI" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 459 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 460 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 461 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uri string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 462 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s not ok 1 - evaluation result is incorrect # 84s # Failed test (with amnesty) 'evaluation result is incorrect' 84s # at t/zzz-acceptance-draft2019-09-format.t line 70. 84s # expected false; got true 84s # schema: { 84s # "$schema": "https://json-schema.org/draft/2019-09/schema", 84s # "format": "uri" 84s # } 84s # data: "bar,baz:foo" 84s # result: 1 84s 1..1 84s } 84s # 84s ok 463 - uuid.json: "uuid format" - "all string formats ignore integers" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 464 - uuid.json: "uuid format" - "all string formats ignore floats" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 465 - uuid.json: "uuid format" - "all string formats ignore objects" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 466 - uuid.json: "uuid format" - "all string formats ignore arrays" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 467 - uuid.json: "uuid format" - "all string formats ignore booleans" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 468 - uuid.json: "uuid format" - "all string formats ignore nulls" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 469 - uuid.json: "uuid format" - "all upper-case" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 470 - uuid.json: "uuid format" - "all lower-case" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 471 - uuid.json: "uuid format" - "mixed case" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 472 - uuid.json: "uuid format" - "all zeroes is valid" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 473 - uuid.json: "uuid format" - "wrong length" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 474 - uuid.json: "uuid format" - "missing section" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 475 - uuid.json: "uuid format" - "bad characters (not hex)" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 476 - uuid.json: "uuid format" - "no dashes" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 477 - uuid.json: "uuid format" - "too few dashes" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 478 - uuid.json: "uuid format" - "too many dashes" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 479 - uuid.json: "uuid format" - "dashes in the wrong spot" { 84s # result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s # short-circuited result: { 84s # "errors": [ 84s # { 84s # "error": "not a valid uuid string", 84s # "instanceLocation": "", 84s # "keywordLocation": "/format" 84s # } 84s # ], 84s # "valid": false 84s # } 84s ok 1 - test passes: data is valid: false 84s 1..1 84s } 84s ok 480 - uuid.json: "uuid format" - "valid version 4" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 481 - uuid.json: "uuid format" - "valid version 5" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 482 - uuid.json: "uuid format" - "hypothetical version 6" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s ok 483 - uuid.json: "uuid format" - "hypothetical version 15" { 84s # result: { 84s # "valid": true 84s # } 84s # short-circuited result: { 84s # "valid": true 84s # } 84s ok 1 - test passes: data is valid: true 84s 1..1 84s } 84s # 84s # generated with: Test::JSON::Schema::Acceptance 1.029 84s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 84s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 84s # specification version: draft2019-09 84s # using custom test directory: /optional/format 84s # optional tests included: yes 84s # 84s # filename pass todo-fail fail 84s # --------------------------------------------------------------- 84s # date-time.json 25 0 0 84s # date.json 47 0 0 84s # duration.json 26 0 0 84s # email.json 15 0 0 84s # hostname.json 25 0 0 84s # idn-email.json 10 0 0 84s # idn-hostname.json 50 15 0 84s # ipv4.json 16 0 0 84s # ipv6.json 40 0 0 84s # iri-reference.json 11 2 0 84s # iri.json 14 1 0 84s # json-pointer.json 38 0 0 84s # regex.json 8 0 0 84s # relative-json-pointer.json 18 0 0 84s # time.json 45 0 0 84s # unknown.json 7 0 0 84s # uri-reference.json 13 0 0 84s # uri-template.json 9 1 0 84s # uri.json 25 1 0 84s # uuid.json 21 0 0 84s # --------------------------------------------------------------- 84s # TOTAL 463 20 0 84s # 84s # Congratulations, all non-optional tests are passing! 84s # 84s ok 484 - no leaks in the main evaluator object 84s ok 485 - no leaks in the short-circuiting evaluator object 84s 1..485 84s ok 90s t/zzz-acceptance-draft2019-09.t ......... 90s # 90s # AUTHOR_TESTING: 90s # AUTOMATED_TESTING: 1 90s # EXTENDED_TESTING: 90s # NO_TODO: 90s # TEST_DIR: 90s # NO_SHORT_CIRCUIT: 90s # 90s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 90s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2019-09 against draft2019-09... 90s # 90s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/additionalItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/additionalItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items/type" 90s # }, 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/additionalItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/additionalItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not boolean", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/additionalItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not boolean", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/additionalItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/additionalItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/additionalItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/additionalItems" 90s # }, 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/additionalItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/additionalItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/quux", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/quux", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/élmény", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/élmény", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not boolean", 90s # "instanceLocation": "/quux", 90s # "keywordLocation": "/additionalProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not boolean", 90s # "instanceLocation": "/quux", 90s # "keywordLocation": "/additionalProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not boolean", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/additionalProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not boolean", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/additionalProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not boolean", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/additionalProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not boolean", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/additionalProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 37 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against both keywords" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 38 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against propertyNames, but not additionalProperties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/pear", 90s # "keywordLocation": "/additionalProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/pear", 90s # "keywordLocation": "/additionalProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 39 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties doesn't consider dependentSchemas" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 40 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 41 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar even when foo2 is present" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 42 - allOf.json: "allOf" - "allOf" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 43 - allOf.json: "allOf" - "mismatch second" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/required" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/required" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 44 - allOf.json: "allOf" - "mismatch first" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/required" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/required" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 45 - allOf.json: "allOf" - "wrong type" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/0/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/properties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/0/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/properties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 46 - allOf.json: "allOf with base schema" - "valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 47 - allOf.json: "allOf with base schema" - "mismatch base schema" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 48 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/required" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/required" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 49 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: baz", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/required" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: baz", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/required" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 50 - allOf.json: "allOf with base schema" - "mismatch both" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/required" 90s # }, 90s # { 90s # "error": "object is missing property: baz", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/required" 90s # }, 90s # { 90s # "error": "subschemas 0, 1 are not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/required" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 51 - allOf.json: "allOf simple types" - "valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 52 - allOf.json: "allOf simple types" - "mismatch one" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than 30", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/maximum" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than 30", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/maximum" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 53 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 54 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 55 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0" 90s # }, 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1" 90s # }, 90s # { 90s # "error": "subschemas 0, 1 are not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 56 - allOf.json: "allOf with one empty schema" - "any data is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 57 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 58 - allOf.json: "allOf with the first empty schema" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 59 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/type" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/type" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 60 - allOf.json: "allOf with the last empty schema" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 61 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/type" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/type" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 62 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 63 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/allOf/0/type" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/allOf" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/allOf/0/type" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/allOf" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 5", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 5", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 67 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 68 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 5", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 69 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 70 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 5", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 5", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/multipleOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 71 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 72 - anchor.json: "Location-independent identifier" - "match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 73 - anchor.json: "Location-independent identifier" - "mismatch" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/A/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/A/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 74 - anchor.json: "Location-independent identifier with absolute URI" - "match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 75 - anchor.json: "Location-independent identifier with absolute URI" - "mismatch" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/bar#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/bar#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 76 - anchor.json: "Location-independent identifier with base URI change in subschema" - "match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 77 - anchor.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested.json#/$defs/B/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested.json#/$defs/B/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 78 - anchor.json: "same $anchor with different base uri" - "$ref resolves to /$defs/A/allOf/1" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 79 - anchor.json: "same $anchor with different base uri" - "$ref does not resolve to /$defs/A/allOf/0" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/child1#/allOf/1/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/child1#/allOf/1/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 80 - anyOf.json: "anyOf" - "first anyOf valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 81 - anyOf.json: "anyOf" - "second anyOf valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 82 - anyOf.json: "anyOf" - "both anyOf valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 83 - anyOf.json: "anyOf" - "neither anyOf valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "error": "value is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/minimum" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "error": "value is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/minimum" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 84 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 85 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 86 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "length is greater than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/maxLength" 90s # }, 90s # { 90s # "error": "length is less than 4", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/minLength" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "length is greater than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/maxLength" 90s # }, 90s # { 90s # "error": "length is less than 4", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/minLength" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 87 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 88 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 89 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0" 90s # }, 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0" 90s # }, 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 90 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 91 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 92 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 93 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/anyOf/0/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/properties" 90s # }, 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/properties/foo/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/properties" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/anyOf/0/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/properties" 90s # }, 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/properties/foo/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/properties" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 94 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 95 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 96 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 97 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/anyOf/0/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/anyOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/anyOf/0/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/anyOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 98 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 99 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 100 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 101 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 102 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 103 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 104 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 105 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 106 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 107 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 108 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 109 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 110 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 111 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 112 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 113 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 114 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 115 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 116 - const.json: "const validation" - "same value is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 117 - const.json: "const validation" - "another value is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 118 - const.json: "const validation" - "another type is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 119 - const.json: "const with object" - "same object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 120 - const.json: "const with object" - "same object with different property order is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 121 - const.json: "const with object" - "another object is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 122 - const.json: "const with object" - "another type is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 123 - const.json: "const with array" - "same array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 124 - const.json: "const with array" - "another array item is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/0': wrong type: integer vs object)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/0': wrong type: integer vs object)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 125 - const.json: "const with array" - "array with additional items is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 126 - const.json: "const with null" - "null is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 127 - const.json: "const with null" - "not null is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 128 - const.json: "const with false does not match 0" - "false is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 129 - const.json: "const with false does not match 0" - "integer zero is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 130 - const.json: "const with false does not match 0" - "float zero is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 131 - const.json: "const with true does not match 1" - "true is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 132 - const.json: "const with true does not match 1" - "integer one is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 133 - const.json: "const with true does not match 1" - "float one is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 134 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 135 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 136 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 137 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 138 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 139 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 140 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 141 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 142 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 143 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 144 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 145 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 146 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 147 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 148 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 149 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 150 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 151 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 152 - const.json: "const with 1 does not match true" - "true is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 153 - const.json: "const with 1 does not match true" - "integer one is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 154 - const.json: "const with 1 does not match true" - "float one is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 155 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 156 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 157 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 158 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 159 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 160 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 161 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 162 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 163 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 164 - const.json: "nul characters in strings" - "match string with nul" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 165 - const.json: "nul characters in strings" - "do not match string lacking nul" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/const" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 166 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 167 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 168 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 169 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than 5", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/contains/minimum" 90s # }, 90s # { 90s # "error": "value is less than 5", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/contains/minimum" 90s # }, 90s # { 90s # "error": "value is less than 5", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/contains/minimum" 90s # }, 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than 5", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/contains/minimum" 90s # }, 90s # { 90s # "error": "value is less than 5", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/contains/minimum" 90s # }, 90s # { 90s # "error": "value is less than 5", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/contains/minimum" 90s # }, 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 170 - contains.json: "contains keyword validation" - "empty array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 171 - contains.json: "contains keyword validation" - "not array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 172 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 173 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 174 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/contains/const" 90s # }, 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/contains/const" 90s # }, 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/contains/const" 90s # }, 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/contains/const" 90s # }, 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/contains/const" 90s # }, 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/contains/const" 90s # }, 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/contains/const" 90s # }, 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/contains/const" 90s # }, 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 175 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 176 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 177 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/contains" 90s # }, 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/contains" 90s # }, 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 178 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 179 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 180 - contains.json: "items + contains" - "matches items, does not match contains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/contains/multipleOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/contains/multipleOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/contains/multipleOf" 90s # }, 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/contains/multipleOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/contains/multipleOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/contains/multipleOf" 90s # }, 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 181 - contains.json: "items + contains" - "does not match items, matches contains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/multipleOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/items/multipleOf" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/multipleOf" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 182 - contains.json: "items + contains" - "matches both items and contains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 183 - contains.json: "items + contains" - "matches neither items nor contains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/multipleOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items/multipleOf" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # }, 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/contains/multipleOf" 90s # }, 90s # { 90s # "error": "value is not a multiple of 3", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/contains/multipleOf" 90s # }, 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/multipleOf" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 184 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 185 - contains.json: "contains with false if subschema" - "empty array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 186 - contains.json: "contains with null instance elements" - "allows null items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 187 - content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 188 - content.json: "validation of string-encoded content based on media type" - "an invalid JSON document; validates true" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 189 - content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 190 - content.json: "validation of binary string-encoding" - "a valid base64 string" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 191 - content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character); validates true" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 192 - content.json: "validation of binary string-encoding" - "ignores non-strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 193 - content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 194 - content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document; validates true" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 195 - content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON; validates true" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 196 - content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 197 - content.json: "validation of binary-encoded media type documents with schema" - "a valid base64-encoded JSON document" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 198 - content.json: "validation of binary-encoded media type documents with schema" - "another valid base64-encoded JSON document" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 199 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64-encoded JSON document; validates true" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 200 - content.json: "validation of binary-encoded media type documents with schema" - "an empty object as a base64-encoded JSON document; validates true" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 201 - content.json: "validation of binary-encoded media type documents with schema" - "an empty array as a base64-encoded JSON document" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 202 - content.json: "validation of binary-encoded media type documents with schema" - "a validly-encoded invalid JSON document; validates true" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 203 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64 string that is valid JSON; validates true" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 204 - content.json: "validation of binary-encoded media type documents with schema" - "ignores non-strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 205 - default.json: "invalid type for default" - "valid when property is specified" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 206 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 207 - default.json: "invalid string value for default" - "valid when property is specified" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 208 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 209 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (passing)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 210 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (failing)" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than 3", 90s # "instanceLocation": "/alpha", 90s # "keywordLocation": "/properties/alpha/maximum" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than 3", 90s # "instanceLocation": "/alpha", 90s # "keywordLocation": "/properties/alpha/maximum" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 211 - default.json: "the default keyword does not do anything if the property is missing" - "missing properties are not filled in with the default" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 212 - defs.json: "validate definition against metaschema" - "valid definition schema" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 213 - defs.json: "validate definition against metaschema" - "invalid definition schema" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/simpleTypes/enum", 90s # "error": "value does not match", 90s # "instanceLocation": "/$defs/foo/type", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/0/$ref/enum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf/1/type", 90s # "error": "got integer, not array", 90s # "instanceLocation": "/$defs/foo/type", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/$defs/foo/type", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/$defs/foo", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "/$defs/foo", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties/$defs/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/$defs", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/simpleTypes/enum", 90s # "error": "value does not match", 90s # "instanceLocation": "/$defs/foo/type", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/0/$ref/enum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf/1/type", 90s # "error": "got integer, not array", 90s # "instanceLocation": "/$defs/foo/type", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/$defs/foo/type", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/$defs/foo", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "/$defs/foo", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties/$defs/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/$defs", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 214 - dependentRequired.json: "single dependency" - "neither" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 215 - dependentRequired.json: "single dependency" - "nondependant" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 216 - dependentRequired.json: "single dependency" - "with dependency" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 217 - dependentRequired.json: "single dependency" - "missing dependency" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/bar" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/bar" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 218 - dependentRequired.json: "single dependency" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 219 - dependentRequired.json: "single dependency" - "ignores strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 220 - dependentRequired.json: "single dependency" - "ignores other non-objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 221 - dependentRequired.json: "empty dependents" - "empty object" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 222 - dependentRequired.json: "empty dependents" - "object with one property" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 223 - dependentRequired.json: "empty dependents" - "non-object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 224 - dependentRequired.json: "multiple dependents required" - "neither" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 225 - dependentRequired.json: "multiple dependents required" - "nondependants" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 226 - dependentRequired.json: "multiple dependents required" - "with dependencies" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 227 - dependentRequired.json: "multiple dependents required" - "missing dependency" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/quux" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/quux" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 228 - dependentRequired.json: "multiple dependents required" - "missing other dependency" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/quux" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/quux" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 229 - dependentRequired.json: "multiple dependents required" - "missing both dependencies" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: foo, bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/quux" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: foo, bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/quux" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 230 - dependentRequired.json: "dependencies with escaped characters" - "CRLF" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 231 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 232 - dependentRequired.json: "dependencies with escaped characters" - "CRLF missing dependent" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo\rbar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/foo\nbar" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo\rbar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/foo\nbar" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 233 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo'bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/foo\"bar" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo'bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired/foo\"bar" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentRequired" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 234 - dependentSchemas.json: "single dependency" - "valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 235 - dependentSchemas.json: "single dependency" - "no dependency" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 236 - dependentSchemas.json: "single dependency" - "wrong type" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/bar/properties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/bar/properties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 237 - dependentSchemas.json: "single dependency" - "wrong type other" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/bar/properties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/bar/properties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 238 - dependentSchemas.json: "single dependency" - "wrong type both" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 90s # }, 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/bar/properties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/bar/properties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 239 - dependentSchemas.json: "single dependency" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 240 - dependentSchemas.json: "single dependency" - "ignores strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 241 - dependentSchemas.json: "single dependency" - "ignores other non-objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 242 - dependentSchemas.json: "boolean subschemas" - "object with property having schema true is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 243 - dependentSchemas.json: "boolean subschemas" - "object with property having schema false is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/bar" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/bar" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 244 - dependentSchemas.json: "boolean subschemas" - "object with both properties is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/bar" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/bar" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 245 - dependentSchemas.json: "boolean subschemas" - "empty object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 246 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 247 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo\"bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/foo'bar/required" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo\"bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/foo'bar/required" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 248 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab invalid under dependent schema" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object has fewer than 4 properties", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object has fewer than 4 properties", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 249 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote invalid under dependent schema" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo\"bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/foo'bar/required" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo\"bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/foo'bar/required" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 250 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches root" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 251 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches dependency" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 252 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches both" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 90s # }, 90s # { 90s # "error": "not all dependencies are satisfied", 90s # "instanceLocation": "", 90s # "keywordLocation": "/dependentSchemas" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 253 - dependentSchemas.json: "dependent subschema incompatible with root" - "no dependency" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 254 - enum.json: "simple enum validation" - "one of the enum is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 255 - enum.json: "simple enum validation" - "something else is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 256 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 257 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 258 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 259 - enum.json: "heterogeneous enum validation" - "valid object matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 260 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 261 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 262 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 263 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 264 - enum.json: "enums in properties" - "both properties are valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 265 - enum.json: "enums in properties" - "wrong foo value" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/enum" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/enum" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 266 - enum.json: "enums in properties" - "wrong bar value" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/enum" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/enum" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 267 - enum.json: "enums in properties" - "missing optional property is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 268 - enum.json: "enums in properties" - "missing required property is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 269 - enum.json: "enums in properties" - "missing all properties is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 270 - enum.json: "enum with escaped characters" - "member 1 is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 271 - enum.json: "enum with escaped characters" - "member 2 is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 272 - enum.json: "enum with escaped characters" - "another string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 273 - enum.json: "enum with false does not match 0" - "false is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 274 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 275 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 276 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 277 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 278 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 279 - enum.json: "enum with true does not match 1" - "true is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 280 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 281 - enum.json: "enum with true does not match 1" - "float one is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 282 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 283 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 284 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 285 - enum.json: "enum with 0 does not match false" - "false is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 286 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 287 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 288 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 289 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 290 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 291 - enum.json: "enum with 1 does not match true" - "true is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 292 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 293 - enum.json: "enum with 1 does not match true" - "float one is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 294 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 295 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 296 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 297 - enum.json: "nul characters in strings" - "match string with nul" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 298 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 299 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 300 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than or equal to 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMaximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than or equal to 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMaximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 301 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than or equal to 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMaximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than or equal to 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMaximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 302 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 303 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 304 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than or equal to 1.1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMinimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than or equal to 1.1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMinimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 305 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than or equal to 1.1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMinimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than or equal to 1.1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMinimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 306 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 307 - format.json: "email format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 308 - format.json: "email format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 309 - format.json: "email format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 310 - format.json: "email format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 311 - format.json: "email format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 312 - format.json: "email format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 313 - format.json: "idn-email format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 314 - format.json: "idn-email format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 315 - format.json: "idn-email format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 316 - format.json: "idn-email format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 317 - format.json: "idn-email format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 318 - format.json: "idn-email format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 319 - format.json: "regex format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 320 - format.json: "regex format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 321 - format.json: "regex format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 322 - format.json: "regex format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 323 - format.json: "regex format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 324 - format.json: "regex format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 325 - format.json: "ipv4 format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 326 - format.json: "ipv4 format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 327 - format.json: "ipv4 format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 328 - format.json: "ipv4 format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 329 - format.json: "ipv4 format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 330 - format.json: "ipv4 format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 331 - format.json: "ipv6 format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 332 - format.json: "ipv6 format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 333 - format.json: "ipv6 format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 334 - format.json: "ipv6 format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 335 - format.json: "ipv6 format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 336 - format.json: "ipv6 format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 337 - format.json: "idn-hostname format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 338 - format.json: "idn-hostname format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 339 - format.json: "idn-hostname format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 340 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 341 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 342 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 343 - format.json: "hostname format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 344 - format.json: "hostname format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 345 - format.json: "hostname format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 346 - format.json: "hostname format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 347 - format.json: "hostname format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 348 - format.json: "hostname format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 349 - format.json: "date format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 350 - format.json: "date format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 351 - format.json: "date format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 352 - format.json: "date format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 353 - format.json: "date format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 354 - format.json: "date format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 355 - format.json: "date-time format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 356 - format.json: "date-time format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 357 - format.json: "date-time format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 358 - format.json: "date-time format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 359 - format.json: "date-time format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 360 - format.json: "date-time format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 361 - format.json: "time format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 362 - format.json: "time format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 363 - format.json: "time format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 364 - format.json: "time format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 365 - format.json: "time format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 366 - format.json: "time format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 367 - format.json: "json-pointer format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 368 - format.json: "json-pointer format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 369 - format.json: "json-pointer format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 370 - format.json: "json-pointer format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 371 - format.json: "json-pointer format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 372 - format.json: "json-pointer format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 373 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 374 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 375 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 376 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 377 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 378 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 379 - format.json: "iri format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 380 - format.json: "iri format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 381 - format.json: "iri format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 382 - format.json: "iri format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 383 - format.json: "iri format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 384 - format.json: "iri format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 385 - format.json: "iri-reference format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 386 - format.json: "iri-reference format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 387 - format.json: "iri-reference format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 388 - format.json: "iri-reference format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 389 - format.json: "iri-reference format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 390 - format.json: "iri-reference format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 391 - format.json: "uri format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 392 - format.json: "uri format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 393 - format.json: "uri format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 394 - format.json: "uri format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 395 - format.json: "uri format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 396 - format.json: "uri format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 397 - format.json: "uri-reference format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 398 - format.json: "uri-reference format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 399 - format.json: "uri-reference format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 400 - format.json: "uri-reference format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 401 - format.json: "uri-reference format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 402 - format.json: "uri-reference format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 403 - format.json: "uri-template format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 404 - format.json: "uri-template format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 405 - format.json: "uri-template format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 406 - format.json: "uri-template format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 407 - format.json: "uri-template format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 408 - format.json: "uri-template format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 409 - format.json: "uuid format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 410 - format.json: "uuid format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 411 - format.json: "uuid format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 412 - format.json: "uuid format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 413 - format.json: "uuid format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 414 - format.json: "uuid format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 415 - format.json: "duration format" - "all string formats ignore integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 416 - format.json: "duration format" - "all string formats ignore floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 417 - format.json: "duration format" - "all string formats ignore objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 418 - format.json: "duration format" - "all string formats ignore arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 419 - format.json: "duration format" - "all string formats ignore booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 420 - format.json: "duration format" - "all string formats ignore nulls" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 421 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 422 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 423 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 424 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 425 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 426 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 427 - if-then-else.json: "if and then without else" - "valid through then" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 428 - if-then-else.json: "if and then without else" - "invalid through then" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than -10", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then/minimum" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than -10", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then/minimum" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 429 - if-then-else.json: "if and then without else" - "valid when if test fails" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 430 - if-then-else.json: "if and else without then" - "valid when if test passes" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 431 - if-then-else.json: "if and else without then" - "valid through else" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 432 - if-then-else.json: "if and else without then" - "invalid through else" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/multipleOf" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/multipleOf" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 433 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 434 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than -10", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then/minimum" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than -10", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then/minimum" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 435 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 436 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/multipleOf" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/multipleOf" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 437 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 438 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 439 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 440 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then/const" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then/const" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 441 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/const" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/const" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 442 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 443 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 444 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 445 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then/const" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then/const" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/then" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 446 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/const" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/const" 90s # }, 90s # { 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 447 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "passing case" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 448 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "failing case" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/int/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/int/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/additionalProperties" 90s # }, 90s # { 90s # "error": "subschemas 0, 1 are not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/int/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/properties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 449 - items.json: "a schema given for items" - "valid items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 450 - items.json: "a schema given for items" - "wrong type of items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 451 - items.json: "a schema given for items" - "ignores non-arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 452 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 453 - items.json: "an array of schemas for items" - "correct types" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 454 - items.json: "an array of schemas for items" - "wrong types" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/0/type" 90s # }, 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items/1/type" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/0/type" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 455 - items.json: "an array of schemas for items" - "incomplete array of items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 456 - items.json: "an array of schemas for items" - "array with additional items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 457 - items.json: "an array of schemas for items" - "empty array" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 458 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 459 - items.json: "items with boolean schema (true)" - "any array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 460 - items.json: "items with boolean schema (true)" - "empty array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 461 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "item not permitted", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items" 90s # }, 90s # { 90s # "error": "item not permitted", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items" 90s # }, 90s # { 90s # "error": "item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "item not permitted", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 462 - items.json: "items with boolean schema (false)" - "empty array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 463 - items.json: "items with boolean schemas" - "array with one item is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 464 - items.json: "items with boolean schemas" - "array with two items is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "item not permitted", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items/1" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "item not permitted", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items/1" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 465 - items.json: "items with boolean schemas" - "empty array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 466 - items.json: "items and subitems" - "valid items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 467 - items.json: "items and subitems" - "too many items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/additionalItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/additionalItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 468 - items.json: "items and subitems" - "too many sub-items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/0/2", 90s # "keywordLocation": "/items/0/$ref/additionalItems" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/0/$ref/additionalItems" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/0/2", 90s # "keywordLocation": "/items/0/$ref/additionalItems" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/0/$ref/additionalItems" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 469 - items.json: "items and subitems" - "wrong item" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/item/type", 90s # "error": "got object, not array", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/0/$ref/type" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/item/type", 90s # "error": "got object, not array", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/0/$ref/type" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 470 - items.json: "items and subitems" - "wrong sub-item" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "/0/0", 90s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/item/items", 90s # "error": "not all items are valid", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/0/$ref/items" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "/0/0", 90s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/item/items", 90s # "error": "not all items are valid", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/0/$ref/items" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 471 - items.json: "items and subitems" - "fewer items is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 472 - items.json: "nested items" - "valid nested array" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 473 - items.json: "nested items" - "nested array with invalid type" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/0/0/0/0", 90s # "keywordLocation": "/items/items/items/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0/0/0", 90s # "keywordLocation": "/items/items/items/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0/0", 90s # "keywordLocation": "/items/items/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/0/0/0/0", 90s # "keywordLocation": "/items/items/items/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0/0/0", 90s # "keywordLocation": "/items/items/items/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0/0", 90s # "keywordLocation": "/items/items/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 474 - items.json: "nested items" - "not deep enough" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not array", 90s # "instanceLocation": "/0/0/0", 90s # "keywordLocation": "/items/items/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0/0", 90s # "keywordLocation": "/items/items/items" 90s # }, 90s # { 90s # "error": "got integer, not array", 90s # "instanceLocation": "/0/1/0", 90s # "keywordLocation": "/items/items/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0/1", 90s # "keywordLocation": "/items/items/items" 90s # }, 90s # { 90s # "error": "got integer, not array", 90s # "instanceLocation": "/0/2/0", 90s # "keywordLocation": "/items/items/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0/2", 90s # "keywordLocation": "/items/items/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/items" 90s # }, 90s # { 90s # "error": "got integer, not array", 90s # "instanceLocation": "/1/0/0", 90s # "keywordLocation": "/items/items/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/1/0", 90s # "keywordLocation": "/items/items/items" 90s # }, 90s # { 90s # "error": "got integer, not array", 90s # "instanceLocation": "/1/1/0", 90s # "keywordLocation": "/items/items/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/1/1", 90s # "keywordLocation": "/items/items/items" 90s # }, 90s # { 90s # "error": "got integer, not array", 90s # "instanceLocation": "/1/2/0", 90s # "keywordLocation": "/items/items/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/1/2", 90s # "keywordLocation": "/items/items/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not array", 90s # "instanceLocation": "/0/0/0", 90s # "keywordLocation": "/items/items/items/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0/0", 90s # "keywordLocation": "/items/items/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/items" 90s # }, 90s # { 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 475 - items.json: "single-form items with null instance elements" - "allows null elements" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 476 - items.json: "array-form items with null instance elements" - "allows null elements" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 477 - maxContains.json: "maxContains without contains is ignored" - "one item valid against lone maxContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 478 - maxContains.json: "maxContains without contains is ignored" - "two items still valid against lone maxContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 479 - maxContains.json: "maxContains with contains" - "empty data" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 480 - maxContains.json: "maxContains with contains" - "all elements match, valid maxContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 481 - maxContains.json: "maxContains with contains" - "all elements match, invalid maxContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 482 - maxContains.json: "maxContains with contains" - "some elements match, valid maxContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 483 - maxContains.json: "maxContains with contains" - "some elements match, invalid maxContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 484 - maxContains.json: "maxContains with contains, value with a decimal" - "one element matches, valid maxContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 485 - maxContains.json: "maxContains with contains, value with a decimal" - "too many elements match, invalid maxContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 486 - maxContains.json: "minContains < maxContains" - "actual < minContains < maxContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # }, 90s # { 90s # "error": "array contains fewer than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 487 - maxContains.json: "minContains < maxContains" - "minContains < actual < maxContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 488 - maxContains.json: "minContains < maxContains" - "minContains < maxContains < actual" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 3 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 3 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 489 - maxItems.json: "maxItems validation" - "shorter is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 490 - maxItems.json: "maxItems validation" - "exact length is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 491 - maxItems.json: "maxItems validation" - "too long is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array has more than 2 items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array has more than 2 items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 492 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 493 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 494 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array has more than 2 items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array has more than 2 items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 495 - maxLength.json: "maxLength validation" - "shorter is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 496 - maxLength.json: "maxLength validation" - "exact length is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 497 - maxLength.json: "maxLength validation" - "too long is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "length is greater than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "length is greater than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 498 - maxLength.json: "maxLength validation" - "ignores non-strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 499 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 500 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 501 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "length is greater than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "length is greater than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 502 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 503 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 504 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object has more than 2 properties", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object has more than 2 properties", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 505 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 506 - maxProperties.json: "maxProperties validation" - "ignores strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 507 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 508 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 509 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object has more than 2 properties", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object has more than 2 properties", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 510 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 511 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object has more than 0 property", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object has more than 0 property", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 512 - maximum.json: "maximum validation" - "below the maximum is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 513 - maximum.json: "maximum validation" - "boundary point is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 514 - maximum.json: "maximum validation" - "above the maximum is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than 3", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 515 - maximum.json: "maximum validation" - "ignores non-numbers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 516 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 517 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 518 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 519 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than 300", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than 300", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 520 - minContains.json: "minContains without contains is ignored" - "one item valid against lone minContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 521 - minContains.json: "minContains without contains is ignored" - "zero items still valid against lone minContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 522 - minContains.json: "minContains=1 with contains" - "empty data" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # }, 90s # { 90s # "error": "array contains fewer than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 523 - minContains.json: "minContains=1 with contains" - "no elements match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/contains/const" 90s # }, 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # }, 90s # { 90s # "error": "array contains fewer than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/contains/const" 90s # }, 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 524 - minContains.json: "minContains=1 with contains" - "single element matches, valid minContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 525 - minContains.json: "minContains=1 with contains" - "some elements match, valid minContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 526 - minContains.json: "minContains=1 with contains" - "all elements match, valid minContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 527 - minContains.json: "minContains=2 with contains" - "empty data" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # }, 90s # { 90s # "error": "array contains fewer than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 528 - minContains.json: "minContains=2 with contains" - "all elements match, invalid minContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains fewer than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains fewer than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 529 - minContains.json: "minContains=2 with contains" - "some elements match, invalid minContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains fewer than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains fewer than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 530 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (exactly as needed)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 531 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (more than needed)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 532 - minContains.json: "minContains=2 with contains" - "some elements match, valid minContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 533 - minContains.json: "minContains=2 with contains with a decimal value" - "one element matches, invalid minContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains fewer than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains fewer than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 534 - minContains.json: "minContains=2 with contains with a decimal value" - "both elements match, valid minContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 535 - minContains.json: "maxContains = minContains" - "empty data" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # }, 90s # { 90s # "error": "array contains fewer than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 536 - minContains.json: "maxContains = minContains" - "all elements match, invalid minContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains fewer than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains fewer than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 537 - minContains.json: "maxContains = minContains" - "all elements match, invalid maxContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 2 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 538 - minContains.json: "maxContains = minContains" - "all elements match, valid maxContains and minContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 539 - minContains.json: "maxContains < minContains" - "empty data" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # }, 90s # { 90s # "error": "array contains fewer than 3 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is not valid against any item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/contains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 540 - minContains.json: "maxContains < minContains" - "invalid minContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains fewer than 3 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains fewer than 3 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 541 - minContains.json: "maxContains < minContains" - "invalid maxContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 542 - minContains.json: "maxContains < minContains" - "invalid maxContains and minContains" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # }, 90s # { 90s # "error": "array contains fewer than 3 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 543 - minContains.json: "minContains = 0 with no maxContains" - "empty data" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 544 - minContains.json: "minContains = 0 with no maxContains" - "minContains = 0 makes contains always pass" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 545 - minContains.json: "minContains = 0 with maxContains" - "empty data" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 546 - minContains.json: "minContains = 0 with maxContains" - "not more than maxContains" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 547 - minContains.json: "minContains = 0 with maxContains" - "too many" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array contains more than 1 matching items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/maxContains" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 548 - minItems.json: "minItems validation" - "longer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 549 - minItems.json: "minItems validation" - "exact length is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 550 - minItems.json: "minItems validation" - "too short is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array has fewer than 1 item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array has fewer than 1 item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 551 - minItems.json: "minItems validation" - "ignores non-arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 552 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 553 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array has fewer than 1 item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array has fewer than 1 item", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 554 - minLength.json: "minLength validation" - "longer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 555 - minLength.json: "minLength validation" - "exact length is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 556 - minLength.json: "minLength validation" - "too short is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "length is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "length is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 557 - minLength.json: "minLength validation" - "ignores non-strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 558 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "length is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "length is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 559 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 560 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "length is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "length is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 561 - minProperties.json: "minProperties validation" - "longer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 562 - minProperties.json: "minProperties validation" - "exact length is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 563 - minProperties.json: "minProperties validation" - "too short is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object has fewer than 1 property", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object has fewer than 1 property", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 564 - minProperties.json: "minProperties validation" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 565 - minProperties.json: "minProperties validation" - "ignores strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 566 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 567 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 568 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object has fewer than 1 property", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object has fewer than 1 property", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 569 - minimum.json: "minimum validation" - "above the minimum is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 570 - minimum.json: "minimum validation" - "boundary point is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 571 - minimum.json: "minimum validation" - "below the minimum is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than 1.1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than 1.1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 572 - minimum.json: "minimum validation" - "ignores non-numbers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 573 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 574 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 575 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 576 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 577 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than -2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than -2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 578 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than -2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than -2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 579 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 580 - multipleOf.json: "by int" - "int by int" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 581 - multipleOf.json: "by int" - "int by int fail" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/multipleOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/multipleOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 582 - multipleOf.json: "by int" - "ignores non-numbers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 583 - multipleOf.json: "by number" - "zero is multiple of anything" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 584 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 585 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 1.5", 90s # "instanceLocation": "", 90s # "keywordLocation": "/multipleOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 1.5", 90s # "instanceLocation": "", 90s # "keywordLocation": "/multipleOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 586 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 587 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 0.0001", 90s # "instanceLocation": "", 90s # "keywordLocation": "/multipleOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 0.0001", 90s # "instanceLocation": "", 90s # "keywordLocation": "/multipleOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 588 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 0.123456789", 90s # "instanceLocation": "", 90s # "keywordLocation": "/multipleOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is not a multiple of 0.123456789", 90s # "instanceLocation": "", 90s # "keywordLocation": "/multipleOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 589 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 590 - not.json: "not" - "allowed" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 591 - not.json: "not" - "disallowed" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 592 - not.json: "not multiple types" - "valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 593 - not.json: "not multiple types" - "mismatch" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 594 - not.json: "not multiple types" - "other mismatch" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 595 - not.json: "not more complex schema" - "match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 596 - not.json: "not more complex schema" - "other match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 597 - not.json: "not more complex schema" - "mismatch" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 598 - not.json: "forbidden property" - "property present" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/not" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/not" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 599 - not.json: "forbidden property" - "property absent" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 600 - not.json: "forbid everything with empty schema" - "number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 601 - not.json: "forbid everything with empty schema" - "string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 602 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 603 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 604 - not.json: "forbid everything with empty schema" - "null is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 605 - not.json: "forbid everything with empty schema" - "object is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 606 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 607 - not.json: "forbid everything with empty schema" - "array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 608 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 609 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 610 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 611 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 612 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 613 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 614 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 615 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 616 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 617 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is true", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 618 - not.json: "allow everything with boolean schema false" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 619 - not.json: "allow everything with boolean schema false" - "string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 620 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 621 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 622 - not.json: "allow everything with boolean schema false" - "null is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 623 - not.json: "allow everything with boolean schema false" - "object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 624 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 625 - not.json: "allow everything with boolean schema false" - "array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 626 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 627 - not.json: "double negation" - "any value is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 628 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 629 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/not" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 630 - oneOf.json: "oneOf" - "first oneOf valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 631 - oneOf.json: "oneOf" - "second oneOf valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 632 - oneOf.json: "oneOf" - "both oneOf valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 633 - oneOf.json: "oneOf" - "neither oneOf valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/type" 90s # }, 90s # { 90s # "error": "value is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/minimum" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/type" 90s # }, 90s # { 90s # "error": "value is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/minimum" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 634 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # }, 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 635 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 636 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 637 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1, 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 638 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 639 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 640 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0" 90s # }, 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1" 90s # }, 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/2" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0" 90s # }, 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1" 90s # }, 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/2" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 641 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 642 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 643 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 644 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/oneOf/0/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/properties" 90s # }, 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/oneOf/1/properties/foo/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/properties" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/oneOf/0/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/properties" 90s # }, 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/oneOf/1/properties/foo/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/properties" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 645 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 646 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 647 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/required" 90s # }, 90s # { 90s # "error": "object is missing properties: foo, baz", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/required" 90s # }, 90s # { 90s # "error": "object is missing properties: foo, baz", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 648 - oneOf.json: "oneOf with required" - "first valid - valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 649 - oneOf.json: "oneOf with required" - "second valid - valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 650 - oneOf.json: "oneOf with required" - "both valid - invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 651 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 652 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 653 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 654 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/required" 90s # }, 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: bar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/required" 90s # }, 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 655 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 656 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/oneOf/0/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/oneOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/oneOf/0/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/oneOf" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 657 - pattern.json: "pattern validation" - "a matching pattern is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 658 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 659 - pattern.json: "pattern validation" - "ignores booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 660 - pattern.json: "pattern validation" - "ignores integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 661 - pattern.json: "pattern validation" - "ignores floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 662 - pattern.json: "pattern validation" - "ignores objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 663 - pattern.json: "pattern validation" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 664 - pattern.json: "pattern validation" - "ignores null" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 665 - pattern.json: "pattern is not anchored" - "matches a substring" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 666 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 667 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 668 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/patternProperties/f.*o/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/patternProperties/f.*o/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 669 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/patternProperties/f.*o/type" 90s # }, 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/foooooo", 90s # "keywordLocation": "/patternProperties/f.*o/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/patternProperties/f.*o/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 670 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 671 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 672 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 673 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 674 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 675 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 676 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/a", 90s # "keywordLocation": "/patternProperties/a*/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/a", 90s # "keywordLocation": "/patternProperties/a*/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 677 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than 20", 90s # "instanceLocation": "/aaaa", 90s # "keywordLocation": "/patternProperties/aaa*/maximum" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than 20", 90s # "instanceLocation": "/aaaa", 90s # "keywordLocation": "/patternProperties/aaa*/maximum" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 678 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/aaa", 90s # "keywordLocation": "/patternProperties/a*/type" 90s # }, 90s # { 90s # "error": "value is greater than 20", 90s # "instanceLocation": "/aaaa", 90s # "keywordLocation": "/patternProperties/aaa*/maximum" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/aaa", 90s # "keywordLocation": "/patternProperties/a*/type" 90s # }, 90s # { 90s # "error": "value is greater than 20", 90s # "instanceLocation": "/aaaa", 90s # "keywordLocation": "/patternProperties/aaa*/maximum" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 679 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 680 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not boolean", 90s # "instanceLocation": "/a31b", 90s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not boolean", 90s # "instanceLocation": "/a31b", 90s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 681 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 682 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/a_X_3", 90s # "keywordLocation": "/patternProperties/X_/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/a_X_3", 90s # "keywordLocation": "/patternProperties/X_/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 683 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 684 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/patternProperties/b.*" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/patternProperties/b.*" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 685 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/patternProperties/b.*" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/patternProperties/b.*" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 686 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "property not permitted", 90s # "instanceLocation": "/foobar", 90s # "keywordLocation": "/patternProperties/b.*" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "property not permitted", 90s # "instanceLocation": "/foobar", 90s # "keywordLocation": "/patternProperties/b.*" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 687 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 688 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 689 - properties.json: "object properties validation" - "both properties present and valid is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 690 - properties.json: "object properties validation" - "one property invalid is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not string", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not string", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 691 - properties.json: "object properties validation" - "both properties invalid is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not string", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/type" 90s # }, 90s # { 90s # "error": "got array, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not string", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 692 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 693 - properties.json: "object properties validation" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 694 - properties.json: "object properties validation" - "ignores other non-objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 695 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 696 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array has more than 3 items", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/maxItems" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array has more than 3 items", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/maxItems" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 697 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array has fewer than 2 items", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/patternProperties/f.o/minItems" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array has fewer than 2 items", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/patternProperties/f.o/minItems" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 698 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 699 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array has fewer than 2 items", 90s # "instanceLocation": "/fxo", 90s # "keywordLocation": "/patternProperties/f.o/minItems" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array has fewer than 2 items", 90s # "instanceLocation": "/fxo", 90s # "keywordLocation": "/patternProperties/f.o/minItems" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 700 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 701 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 702 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/quux", 90s # "keywordLocation": "/additionalProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/quux", 90s # "keywordLocation": "/additionalProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 703 - properties.json: "properties with boolean schema" - "no property present is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 704 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 705 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 706 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 707 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 708 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/foo\tbar", 90s # "keywordLocation": "/properties/foo\tbar/type" 90s # }, 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/foo\nbar", 90s # "keywordLocation": "/properties/foo\nbar/type" 90s # }, 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/foo\fbar", 90s # "keywordLocation": "/properties/foo\fbar/type" 90s # }, 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/foo\rbar", 90s # "keywordLocation": "/properties/foo\rbar/type" 90s # }, 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/foo\"bar", 90s # "keywordLocation": "/properties/foo\"bar/type" 90s # }, 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/foo\\bar", 90s # "keywordLocation": "/properties/foo\\bar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/foo\tbar", 90s # "keywordLocation": "/properties/foo\tbar/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 709 - properties.json: "properties with null valued instance properties" - "allows null values" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 710 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 711 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 712 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 713 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/__proto__", 90s # "keywordLocation": "/properties/__proto__/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/__proto__", 90s # "keywordLocation": "/properties/__proto__/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 714 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/toString/length", 90s # "keywordLocation": "/properties/toString/properties/length/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/toString", 90s # "keywordLocation": "/properties/toString/properties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/toString/length", 90s # "keywordLocation": "/properties/toString/properties/length/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/toString", 90s # "keywordLocation": "/properties/toString/properties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 715 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not number", 90s # "instanceLocation": "/constructor", 90s # "keywordLocation": "/properties/constructor/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not number", 90s # "instanceLocation": "/constructor", 90s # "keywordLocation": "/properties/constructor/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 716 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 717 - propertyNames.json: "propertyNames validation" - "all property names valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 718 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "length is greater than 3", 90s # "instanceLocation": "/foobar", 90s # "keywordLocation": "/propertyNames/maxLength" 90s # }, 90s # { 90s # "error": "not all property names are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/propertyNames" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "length is greater than 3", 90s # "instanceLocation": "/foobar", 90s # "keywordLocation": "/propertyNames/maxLength" 90s # }, 90s # { 90s # "error": "not all property names are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/propertyNames" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 719 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 720 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 721 - propertyNames.json: "propertyNames validation" - "ignores strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 722 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 723 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 724 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "/aaA", 90s # "keywordLocation": "/propertyNames/pattern" 90s # }, 90s # { 90s # "error": "not all property names are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/propertyNames" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "/aaA", 90s # "keywordLocation": "/propertyNames/pattern" 90s # }, 90s # { 90s # "error": "not all property names are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/propertyNames" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 725 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 726 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 727 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 728 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/propertyNames" 90s # }, 90s # { 90s # "error": "not all property names are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/propertyNames" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "subschema is false", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/propertyNames" 90s # }, 90s # { 90s # "error": "not all property names are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/propertyNames" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 729 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 730 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 731 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/propertyNames/const" 90s # }, 90s # { 90s # "error": "not all property names are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/propertyNames" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/propertyNames/const" 90s # }, 90s # { 90s # "error": "not all property names are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/propertyNames" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 732 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 733 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 734 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 735 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/propertyNames/enum" 90s # }, 90s # { 90s # "error": "not all property names are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/propertyNames" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/propertyNames/enum" 90s # }, 90s # { 90s # "error": "not all property names are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/propertyNames" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 736 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 737 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 738 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 739 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "mismatch" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 740 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive mismatch" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/additionalProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/additionalProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 741 - recursiveRef.json: "$recursiveRef without using nesting" - "integer matches at the outer level" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 742 - recursiveRef.json: "$recursiveRef without using nesting" - "single level match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 743 - recursiveRef.json: "$recursiveRef without using nesting" - "integer does not match as a property value" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 744 - recursiveRef.json: "$recursiveRef without using nesting" - "two levels, properties match with inner definition" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 745 - recursiveRef.json: "$recursiveRef without using nesting" - "two levels, no match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 746 - recursiveRef.json: "$recursiveRef with nesting" - "integer matches at the outer level" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 747 - recursiveRef.json: "$recursiveRef with nesting" - "single level match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 748 - recursiveRef.json: "$recursiveRef with nesting" - "integer now matches as a property value" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 749 - recursiveRef.json: "$recursiveRef with nesting" - "two levels, properties match with inner definition" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 750 - recursiveRef.json: "$recursiveRef with nesting" - "two levels, properties match with $recursiveRef" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 751 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "integer matches at the outer level" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 752 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "single level match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 753 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "integer does not match as a property value" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 754 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "two levels, properties match with inner definition" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 755 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "two levels, integer does not match as a property value" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 756 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "integer matches at the outer level" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 757 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "single level match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 758 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "integer does not match as a property value" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 759 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "two levels, properties match with inner definition" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 760 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "two levels, integer does not match as a property value" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 90s # "error": "got integer, not object", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 761 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node does not match; no recursion" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 90s # "error": "got object, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 90s # "error": "got boolean, not object", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 90s # "error": "got object, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 90s # "error": "got boolean, not object", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 762 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node matches: recursion uses the inner schema" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 763 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node does not match: recursion uses the inner schema" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 90s # "error": "got object, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 90s # "error": "got boolean, not object", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 90s # "error": "got object, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 90s # "error": "got boolean, not object", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 764 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node does not match; no recursion" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 90s # "error": "got object, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 90s # "error": "got boolean, not object", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 90s # "error": "got object, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 90s # "error": "got boolean, not object", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 765 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node matches: recursion only uses inner schema" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 766 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node does not match: recursion only uses inner schema" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 90s # "error": "got object, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 90s # "error": "got boolean, not object", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 90s # "error": "got object, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 90s # "error": "got object, not integer", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 90s # "error": "got boolean, not object", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 767 - recursiveRef.json: "multiple dynamic paths to the $recursiveRef keyword" - "recurse to anyLeafNode - floats are allowed" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 768 - recursiveRef.json: "multiple dynamic paths to the $recursiveRef keyword" - "recurse to integerNode - floats are not allowed" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_integerNode.json#/type", 90s # "error": "got number, not one of object, integer", 90s # "instanceLocation": "/november", 90s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_inner.json#/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/$ref/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_main.json#/else", 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_integerNode.json#/type", 90s # "error": "got number, not one of object, integer", 90s # "instanceLocation": "/november", 90s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_inner.json#/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/$ref/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_main.json#/else", 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 769 - recursiveRef.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "numeric node" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 770 - recursiveRef.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "integer node" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/integerNode.json#/type", 90s # "error": "got number, not one of object, integer", 90s # "instanceLocation": "/november", 90s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/inner.json#/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/$ref/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/main.json#/else", 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/integerNode.json#/type", 90s # "error": "got number, not one of object, integer", 90s # "instanceLocation": "/november", 90s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/inner.json#/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else/$ref/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/main.json#/else", 90s # "error": "subschema is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/else" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 771 - ref.json: "root pointer ref" - "match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 772 - ref.json: "root pointer ref" - "recursive match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 773 - ref.json: "root pointer ref" - "mismatch" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 774 - ref.json: "root pointer ref" - "recursive mismatch" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/additionalProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/additionalProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/additionalProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 775 - ref.json: "relative pointer ref to object" - "match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 776 - ref.json: "relative pointer ref to object" - "mismatch" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/properties/foo/type", 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/properties/foo/type", 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 777 - ref.json: "relative pointer ref to array" - "match array" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 778 - ref.json: "relative pointer ref to array" - "mismatch array" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/items/0/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items/1/$ref/type" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/items/0/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/items/1/$ref/type" 90s # }, 90s # { 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 779 - ref.json: "escaped pointer ref" - "slash invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/slash", 90s # "keywordLocation": "/properties/slash/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/slash", 90s # "keywordLocation": "/properties/slash/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 780 - ref.json: "escaped pointer ref" - "tilde invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/tilde", 90s # "keywordLocation": "/properties/tilde/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/tilde", 90s # "keywordLocation": "/properties/tilde/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 781 - ref.json: "escaped pointer ref" - "percent invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/percent", 90s # "keywordLocation": "/properties/percent/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/percent", 90s # "keywordLocation": "/properties/percent/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 782 - ref.json: "escaped pointer ref" - "slash valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 783 - ref.json: "escaped pointer ref" - "tilde valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 784 - ref.json: "escaped pointer ref" - "percent valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 785 - ref.json: "nested refs" - "nested ref valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 786 - ref.json: "nested refs" - "nested ref invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/a/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/a/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 787 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 788 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "array has more than 2 items", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/maxItems" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "array has more than 2 items", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/maxItems" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 789 - ref.json: "ref applies alongside sibling keywords" - "ref invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/reffed/type", 90s # "error": "got string, not array", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/reffed/type", 90s # "error": "got string, not array", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 790 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 791 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/nonNegativeInteger/minimum", 90s # "error": "value is less than 0", 90s # "instanceLocation": "/minLength", 90s # "keywordLocation": "/$ref/allOf/2/$ref/properties/minLength/$ref/$ref/minimum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/allOf/2/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/nonNegativeInteger/minimum", 90s # "error": "value is less than 0", 90s # "instanceLocation": "/minLength", 90s # "keywordLocation": "/$ref/allOf/2/$ref/properties/minLength/$ref/$ref/minimum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/allOf/2/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 792 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 793 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/$ref", 90s # "keywordLocation": "/properties/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/$ref", 90s # "keywordLocation": "/properties/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 794 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 795 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/is-string/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/$ref", 90s # "keywordLocation": "/properties/$ref/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/is-string/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/$ref", 90s # "keywordLocation": "/properties/$ref/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 796 - ref.json: "$ref to boolean schema true" - "any value is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 797 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/bool", 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/bool", 90s # "error": "subschema is false", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 798 - ref.json: "Recursive references between schemas" - "valid tree" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 799 - ref.json: "Recursive references between schemas" - "invalid tree" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties/value/type", 90s # "error": "got string, not number", 90s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 90s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/nodes/0/subtree/nodes/0", 90s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/nodes/0/subtree/nodes", 90s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/nodes/0/subtree", 90s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/nodes/0", 90s # "keywordLocation": "/properties/nodes/items/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/nodes", 90s # "keywordLocation": "/properties/nodes/items" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties/value/type", 90s # "error": "got string, not number", 90s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 90s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/nodes/0/subtree/nodes/0", 90s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/nodes/0/subtree/nodes", 90s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/nodes/0/subtree", 90s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/nodes/0", 90s # "keywordLocation": "/properties/nodes/items/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/nodes", 90s # "keywordLocation": "/properties/nodes/items" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 800 - ref.json: "refs with quote" - "object with numbers is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 801 - ref.json: "refs with quote" - "object with strings is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 90s # "error": "got string, not number", 90s # "instanceLocation": "/foo\"bar", 90s # "keywordLocation": "/properties/foo\"bar/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 90s # "error": "got string, not number", 90s # "instanceLocation": "/foo\"bar", 90s # "keywordLocation": "/properties/foo\"bar/$ref/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 802 - ref.json: "ref creates new scope when adjacent to keywords" - "referenced subschema doesn't see annotations from properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/prop1", 90s # "keywordLocation": "/$ref/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/prop1", 90s # "keywordLocation": "/$ref/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 803 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 804 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/enum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 805 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 806 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 807 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/$ref/$ref/properties/bar/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/$ref/$ref/properties/bar/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 808 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 809 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo/bar", 90s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 810 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/$ref/$ref/properties/bar/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/$ref/$ref/properties/bar/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 811 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 812 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 813 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 814 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 815 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id1/int.json#/maximum", 90s # "error": "value is greater than 10", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/maximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id1/int.json#/maximum", 90s # "error": "value is greater than 10", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/maximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 816 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 817 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id2/base.json#/$defs/bigint/maximum", 90s # "error": "value is greater than 10", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/maximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id2/base.json#/$defs/bigint/maximum", 90s # "error": "value is greater than 10", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/maximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 818 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 819 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 90s # "error": "value is less than 30", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/minimum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 90s # "error": "value is less than 30", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/minimum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 820 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 821 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 822 - ref.json: "URN base URI with NSS" - "a string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 823 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 824 - ref.json: "URN base URI with r-component" - "a string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 825 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 826 - ref.json: "URN base URI with q-component" - "a string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 827 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 828 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 829 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 830 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 831 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 832 - ref.json: "URN ref with nested pointer ref" - "a string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 833 - ref.json: "URN ref with nested pointer ref" - "a non-string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 834 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 835 - ref.json: "ref to if" - "an integer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 836 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 837 - ref.json: "ref to then" - "an integer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 838 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 839 - ref.json: "ref to else" - "an integer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 840 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 841 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 842 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 843 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 844 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 845 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 846 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 847 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs//$defs//type", 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/$ref/type" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs//$defs//type", 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/$ref/type" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 848 - ref.json: "$ref with $recursiveAnchor" - "extra items allowed for inner arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 849 - ref.json: "$ref with $recursiveAnchor" - "extra items disallowed for root" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 850 - refRemote.json: "remote ref" - "remote ref valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 851 - refRemote.json: "remote ref" - "remote ref invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 852 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 853 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 854 - refRemote.json: "anchor within remote ref" - "remote anchor valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 855 - refRemote.json: "anchor within remote ref" - "remote anchor invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 856 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 857 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 858 - refRemote.json: "base URI change" - "base URI change ref valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 859 - refRemote.json: "base URI change" - "base URI change ref invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/folderInteger.json#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/0/0", 90s # "keywordLocation": "/items/items/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/#/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/items" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/#/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/folderInteger.json#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/0/0", 90s # "keywordLocation": "/items/items/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/#/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/items/items" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/#/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 860 - refRemote.json: "base URI change - change folder" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 861 - refRemote.json: "base URI change - change folder" - "string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/folderInteger.json#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/list/0", 90s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/#/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/list", 90s # "keywordLocation": "/properties/list/$ref/items" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs1.json#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/folderInteger.json#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/list/0", 90s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/#/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/list", 90s # "keywordLocation": "/properties/list/$ref/items" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs1.json#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 862 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 863 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/folderInteger.json#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/list/0", 90s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/#/$defs/bar/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/list", 90s # "keywordLocation": "/properties/list/$ref/items" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs2.json#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/folderInteger.json#/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "/list/0", 90s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/#/$defs/bar/items", 90s # "error": "subschema is not valid against all items", 90s # "instanceLocation": "/list", 90s # "keywordLocation": "/properties/list/$ref/items" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs2.json#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 864 - refRemote.json: "root ref in remote ref" - "string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 865 - refRemote.json: "root ref in remote ref" - "null is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 866 - refRemote.json: "root ref in remote ref" - "object is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf/0/type", 90s # "error": "got object, not null", 90s # "instanceLocation": "/name", 90s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "/name", 90s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/name", 90s # "keywordLocation": "/properties/name/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/object#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf/0/type", 90s # "error": "got object, not null", 90s # "instanceLocation": "/name", 90s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "/name", 90s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "/name", 90s # "keywordLocation": "/properties/name/$ref/anyOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/object#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 867 - refRemote.json: "remote ref with ref to defs" - "invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/$ref/$ref/properties/bar/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/$ref/$ref/properties/bar/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 868 - refRemote.json: "remote ref with ref to defs" - "valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 869 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 870 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 871 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/name/foo", 90s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/foo-ref-string.json#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/name", 90s # "keywordLocation": "/properties/name/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/some-id#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/name/foo", 90s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/foo-ref-string.json#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/name", 90s # "keywordLocation": "/properties/name/$ref/properties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/some-id#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 872 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 873 - refRemote.json: "remote HTTP ref with different $id" - "number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 874 - refRemote.json: "remote HTTP ref with different $id" - "string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 875 - refRemote.json: "remote HTTP ref with different URN $id" - "number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 876 - refRemote.json: "remote HTTP ref with different URN $id" - "string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 877 - refRemote.json: "remote HTTP ref with nested absolute ref" - "number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 878 - refRemote.json: "remote HTTP ref with nested absolute ref" - "string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 879 - refRemote.json: "$ref to $ref finds detached $anchor" - "number is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 880 - refRemote.json: "$ref to $ref finds detached $anchor" - "non-number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/detached-ref.json#/$defs/detached/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/detached-ref.json#/$defs/detached/type", 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/$ref/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 881 - required.json: "required validation" - "present required property is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 882 - required.json: "required validation" - "non-present required property is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing property: foo", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 883 - required.json: "required validation" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 884 - required.json: "required validation" - "ignores strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 885 - required.json: "required validation" - "ignores other non-objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 886 - required.json: "required default validation" - "not required by default" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 887 - required.json: "required with empty array" - "property not required" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 888 - required.json: "required with escaped characters" - "object with all properties present is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 889 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 890 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 891 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 892 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: __proto__, toString, constructor", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: __proto__, toString, constructor", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 893 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: toString, constructor", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: toString, constructor", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 894 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: __proto__, constructor", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: __proto__, constructor", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 895 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: __proto__, toString", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "object is missing properties: __proto__, toString", 90s # "instanceLocation": "", 90s # "keywordLocation": "/required" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 896 - required.json: "required properties whose names are Javascript object property names" - "all present" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 897 - type.json: "integer type matches integers" - "an integer is an integer" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 898 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 899 - type.json: "integer type matches integers" - "a float is not an integer" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 900 - type.json: "integer type matches integers" - "a string is not an integer" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 901 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 902 - type.json: "integer type matches integers" - "an object is not an integer" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 903 - type.json: "integer type matches integers" - "an array is not an integer" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 904 - type.json: "integer type matches integers" - "a boolean is not an integer" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 905 - type.json: "integer type matches integers" - "null is not an integer" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not integer", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 906 - type.json: "number type matches numbers" - "an integer is a number" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 907 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 908 - type.json: "number type matches numbers" - "a float is a number" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 909 - type.json: "number type matches numbers" - "a string is not a number" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 910 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 911 - type.json: "number type matches numbers" - "an object is not a number" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 912 - type.json: "number type matches numbers" - "an array is not a number" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 913 - type.json: "number type matches numbers" - "a boolean is not a number" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 914 - type.json: "number type matches numbers" - "null is not a number" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 915 - type.json: "string type matches strings" - "1 is not a string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 916 - type.json: "string type matches strings" - "a float is not a string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 917 - type.json: "string type matches strings" - "a string is a string" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 918 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 919 - type.json: "string type matches strings" - "an empty string is still a string" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 920 - type.json: "string type matches strings" - "an object is not a string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 921 - type.json: "string type matches strings" - "an array is not a string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 922 - type.json: "string type matches strings" - "a boolean is not a string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 923 - type.json: "string type matches strings" - "null is not a string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 924 - type.json: "object type matches objects" - "an integer is not an object" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 925 - type.json: "object type matches objects" - "a float is not an object" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 926 - type.json: "object type matches objects" - "a string is not an object" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 927 - type.json: "object type matches objects" - "an object is an object" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 928 - type.json: "object type matches objects" - "an array is not an object" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 929 - type.json: "object type matches objects" - "a boolean is not an object" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 930 - type.json: "object type matches objects" - "null is not an object" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 931 - type.json: "array type matches arrays" - "an integer is not an array" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 932 - type.json: "array type matches arrays" - "a float is not an array" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 933 - type.json: "array type matches arrays" - "a string is not an array" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 934 - type.json: "array type matches arrays" - "an object is not an array" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 935 - type.json: "array type matches arrays" - "an array is an array" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 936 - type.json: "array type matches arrays" - "a boolean is not an array" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 937 - type.json: "array type matches arrays" - "null is not an array" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not array", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 938 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 939 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 940 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 941 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 942 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 943 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 944 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 945 - type.json: "boolean type matches booleans" - "true is a boolean" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 946 - type.json: "boolean type matches booleans" - "false is a boolean" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 947 - type.json: "boolean type matches booleans" - "null is not a boolean" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not boolean", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 948 - type.json: "null type matches only the null object" - "an integer is not null" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 949 - type.json: "null type matches only the null object" - "a float is not null" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 950 - type.json: "null type matches only the null object" - "zero is not null" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 951 - type.json: "null type matches only the null object" - "a string is not null" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 952 - type.json: "null type matches only the null object" - "an empty string is not null" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 953 - type.json: "null type matches only the null object" - "an object is not null" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 954 - type.json: "null type matches only the null object" - "an array is not null" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 955 - type.json: "null type matches only the null object" - "true is not null" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 956 - type.json: "null type matches only the null object" - "false is not null" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 957 - type.json: "null type matches only the null object" - "null is null" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 958 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 959 - type.json: "multiple types can be specified in an array" - "a string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 960 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not one of integer, string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got number, not one of integer, string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 961 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not one of integer, string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got object, not one of integer, string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 962 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not one of integer, string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got array, not one of integer, string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 963 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not one of integer, string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got boolean, not one of integer, string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 964 - type.json: "multiple types can be specified in an array" - "null is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not one of integer, string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not one of integer, string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 965 - type.json: "type as array with one item" - "string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 966 - type.json: "type as array with one item" - "number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not one of string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not one of string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 967 - type.json: "type: array or object" - "array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 968 - type.json: "type: array or object" - "object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 969 - type.json: "type: array or object" - "number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not one of array, object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not one of array, object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 970 - type.json: "type: array or object" - "string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not one of array, object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not one of array, object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 971 - type.json: "type: array or object" - "null is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not one of array, object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got null, not one of array, object", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 972 - type.json: "type: array, object or null" - "array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 973 - type.json: "type: array, object or null" - "object is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 974 - type.json: "type: array, object or null" - "null is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 975 - type.json: "type: array, object or null" - "number is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not one of array, object, null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not one of array, object, null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 976 - type.json: "type: array, object or null" - "string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not one of array, object, null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not one of array, object, null", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 977 - unevaluatedItems.json: "unevaluatedItems true" - "with no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 978 - unevaluatedItems.json: "unevaluatedItems true" - "with unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 979 - unevaluatedItems.json: "unevaluatedItems false" - "with no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 980 - unevaluatedItems.json: "unevaluatedItems false" - "with unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 981 - unevaluatedItems.json: "unevaluatedItems as schema" - "with no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 982 - unevaluatedItems.json: "unevaluatedItems as schema" - "with valid unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 983 - unevaluatedItems.json: "unevaluatedItems as schema" - "with invalid unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/unevaluatedItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/unevaluatedItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 984 - unevaluatedItems.json: "unevaluatedItems with uniform items" - "unevaluatedItems doesn't apply" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 985 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 986 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 987 - unevaluatedItems.json: "unevaluatedItems with items and additionalItems" - "unevaluatedItems doesn't apply" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 988 - unevaluatedItems.json: "unevaluatedItems with ignored additionalItems" - "invalid under unevaluatedItems" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/unevaluatedItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/unevaluatedItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 989 - unevaluatedItems.json: "unevaluatedItems with ignored additionalItems" - "all valid under unevaluatedItems" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 990 - unevaluatedItems.json: "unevaluatedItems with ignored applicator additionalItems" - "invalid under unevaluatedItems" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/unevaluatedItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/unevaluatedItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 991 - unevaluatedItems.json: "unevaluatedItems with ignored applicator additionalItems" - "all valid under unevaluatedItems" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 992 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 993 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 994 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with only (valid) additional items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 995 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with no additional items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 996 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with invalid additional item" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not boolean", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/unevaluatedItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not boolean", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/unevaluatedItems/type" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 997 - unevaluatedItems.json: "unevaluatedItems with nested items and additionalItems" - "with no additional items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 998 - unevaluatedItems.json: "unevaluatedItems with nested items and additionalItems" - "with additional items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 999 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with no additional items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1000 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with additional items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1001 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1002 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1003 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1004 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1005 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1006 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1007 - unevaluatedItems.json: "unevaluatedItems with not" - "with unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1008 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1009 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/3", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1010 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1011 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/4", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/4", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1012 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1013 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1014 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1015 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1016 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1017 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1018 - unevaluatedItems.json: "unevaluatedItems with $recursiveRef" - "with no unevaluated items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1019 - unevaluatedItems.json: "unevaluatedItems with $recursiveRef" - "with unevaluated items" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/1/3", 90s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items", 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/1/3", 90s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "/1", 90s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items", 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/items" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1020 - unevaluatedItems.json: "unevaluatedItems can't see inside cousins" - "always fails" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/allOf/1/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/allOf/1/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1021 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "no extra items" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1022 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "uncle keyword evaluation is not significant" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/foo/1", 90s # "keywordLocation": "/properties/foo/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/unevaluatedItems" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/foo/1", 90s # "keywordLocation": "/properties/foo/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/unevaluatedItems" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1023 - unevaluatedItems.json: "non-array instances are valid" - "ignores booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1024 - unevaluatedItems.json: "non-array instances are valid" - "ignores integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1025 - unevaluatedItems.json: "non-array instances are valid" - "ignores floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1026 - unevaluatedItems.json: "non-array instances are valid" - "ignores objects" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1027 - unevaluatedItems.json: "non-array instances are valid" - "ignores strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1028 - unevaluatedItems.json: "non-array instances are valid" - "ignores null" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1029 - unevaluatedItems.json: "unevaluatedItems with null instance elements" - "allows null elements" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1030 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "valid in case if is evaluated" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1031 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "invalid in case if is evaluated" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/unevaluatedItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 1032 - unevaluatedProperties.json: "unevaluatedProperties true" - "with no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1033 - unevaluatedProperties.json: "unevaluatedProperties true" - "with unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1034 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1035 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with valid unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1036 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with invalid unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "length is less than 3", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties/minLength" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "length is less than 3", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties/minLength" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1037 - unevaluatedProperties.json: "unevaluatedProperties false" - "with no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1038 - unevaluatedProperties.json: "unevaluatedProperties false" - "with unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1039 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1040 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1041 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1042 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1043 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with no additional properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1044 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with additional properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1045 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with no additional properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1046 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with additional properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1047 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with no additional properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1048 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with additional properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1049 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with no additional properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1050 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with additional properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1051 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with no nested unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1052 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with nested unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1053 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1054 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1055 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1056 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/quux", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/quux", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1057 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1058 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/quux", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/quux", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1059 - unevaluatedProperties.json: "unevaluatedProperties with not" - "with unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1060 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1061 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1062 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1063 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1064 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has no unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1065 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1066 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1067 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1068 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1069 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1070 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has no unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1071 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1072 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1073 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1074 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1075 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1076 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1077 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1078 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1079 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/baz", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1080 - unevaluatedProperties.json: "unevaluatedProperties with $recursiveRef" - "with no unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1081 - unevaluatedProperties.json: "unevaluatedProperties with $recursiveRef" - "with unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/branches/foo", 90s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/branches", 90s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/branches/foo", 90s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/branches", 90s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1082 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins" - "always fails" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1083 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins (reverse order)" - "always fails" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1084 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with no nested unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1085 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with nested unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1086 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with no nested unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1087 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with nested unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1088 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with no nested unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1089 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with nested unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1090 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with no nested unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1091 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with nested unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1092 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with no nested unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1093 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with nested unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1094 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with no nested unevaluated properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1095 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with nested unevaluated properties" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/1/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 1 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1096 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "no extra properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1097 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "uncle keyword evaluation is not significant" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo/faz", 90s # "keywordLocation": "/properties/foo/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo/faz", 90s # "keywordLocation": "/properties/foo/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/properties/foo/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1098 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "base case: both properties present" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1099 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, bar is missing" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1100 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, foo is missing" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "subschema 0 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1101 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "base case: both properties present" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1102 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, bar is missing" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1103 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, foo is missing" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1104 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Empty is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1105 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Single is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1106 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 1st level is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/y", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/y", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1107 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Nested is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1108 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 2nd level is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/unevaluatedProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/x/y", 90s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/unevaluatedProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/x", 90s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/unevaluatedProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/x/y", 90s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/unevaluatedProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/x", 90s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1109 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Deep nested is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1110 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 3rd level is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/unevaluatedProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/x/x/y", 90s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/unevaluatedProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/x/x", 90s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/x", 90s # "keywordLocation": "/properties/x/$ref/properties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/unevaluatedProperties", 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/x/x/y", 90s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/unevaluatedProperties", 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "/x/x", 90s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "/x", 90s # "keywordLocation": "/properties/x/$ref/properties" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1111 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "Empty is invalid (no x or y)" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/required", 90s # "error": "object is missing property: x", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 90s # }, 90s # { 90s # "error": "object is missing property: y", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf" 90s # }, 90s # { 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/required", 90s # "error": "object is missing property: x", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 90s # }, 90s # { 90s # "error": "object is missing property: y", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf" 90s # }, 90s # { 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1112 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b are invalid (no x or y)" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/required", 90s # "error": "object is missing property: x", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 90s # }, 90s # { 90s # "error": "object is missing property: y", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf" 90s # }, 90s # { 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/required", 90s # "error": "object is missing property: x", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 90s # }, 90s # { 90s # "error": "object is missing property: y", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf" 90s # }, 90s # { 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1113 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "x and y are invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf" 90s # }, 90s # { 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/x", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/y", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf" 90s # }, 90s # { 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/x", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/y", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1114 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and x are valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1115 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and y are valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1116 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x are valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1117 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and y are valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1118 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x and y are invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf" 90s # }, 90s # { 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/x", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/y", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf/2/oneOf" 90s # }, 90s # { 90s # "error": "subschema 2 is not valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/allOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/x", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/y", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1119 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "Empty is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 90s # "error": "object is missing property: c", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 90s # "error": "object is missing property: d", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 90s # "error": "object is missing property: b", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 90s # "error": "object is missing property: xx", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 90s # "error": "object is missing property: all", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 90s # "error": "object is missing property: c", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 90s # "error": "object is missing property: d", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 90s # "error": "object is missing property: b", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 90s # "error": "object is missing property: xx", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 90s # "error": "object is missing property: all", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1120 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1121 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1122 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1123 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "d is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1124 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + b is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1125 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + c is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1126 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + d is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1127 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + c is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/b", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/c", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/b", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/c", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1128 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + d is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/b", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/d", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/b", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/d", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1129 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c + d is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 90s # "error": "object is missing property: b", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 90s # "error": "object is missing property: xx", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 90s # "error": "object is missing property: all", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/c", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/d", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 90s # "error": "object is missing property: b", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 90s # "error": "object is missing property: xx", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 90s # "error": "object is missing property: all", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/c", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/d", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1130 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1131 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foox is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1132 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foo is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1133 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + a is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1134 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + b is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "multiple subschemas are valid: 1, 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/b", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/xx", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "multiple subschemas are valid: 1, 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/b", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/xx", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1135 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + c is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "multiple subschemas are valid: 0, 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/c", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/xx", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "multiple subschemas are valid: 0, 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/c", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/xx", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1136 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + d is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "multiple subschemas are valid: 0, 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/d", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/xx", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 90s # "error": "multiple subschemas are valid: 0, 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/0/$ref/oneOf" 90s # }, 90s # { 90s # "error": "object is missing property: a", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf/1/required" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/d", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/xx", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1137 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1138 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + foo is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1139 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + a is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "multiple subschemas are valid: 0, 1", 90s # "instanceLocation": "", 90s # "keywordLocation": "/oneOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1140 - unevaluatedProperties.json: "non-object instances are valid" - "ignores booleans" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1141 - unevaluatedProperties.json: "non-object instances are valid" - "ignores integers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1142 - unevaluatedProperties.json: "non-object instances are valid" - "ignores floats" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1143 - unevaluatedProperties.json: "non-object instances are valid" - "ignores arrays" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1144 - unevaluatedProperties.json: "non-object instances are valid" - "ignores strings" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1145 - unevaluatedProperties.json: "non-object instances are valid" - "ignores null" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1146 - unevaluatedProperties.json: "unevaluatedProperties with null valued instance properties" - "allows null valued properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1147 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "allows only number properties" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1148 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "string property is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/a", 90s # "keywordLocation": "/unevaluatedProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "/a", 90s # "keywordLocation": "/unevaluatedProperties/type" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1149 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "valid in case if is evaluated" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1150 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "invalid in case if is evaluated" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1151 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't consider dependentSchemas" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/foo", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1152 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't see bar when foo2 is absent" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/unevaluatedProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/unevaluatedProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1153 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties sees bar when foo2 is present" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 1154 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1155 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1156 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 2 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 2 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1157 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1158 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1159 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1160 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1161 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 2 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 2 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1162 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1163 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1164 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1165 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1166 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1167 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1168 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1169 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 2 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 2 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1170 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1171 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1172 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1173 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1174 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1175 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1176 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1177 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 4 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 4 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1178 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1179 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1180 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1181 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1182 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1183 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1184 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1185 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1186 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1187 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1188 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 2 and 3 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 2 and 3 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1189 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 2 and 3 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 2 and 3 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1190 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1191 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1192 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1193 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "items at indices 0 and 1 are not unique", 90s # "instanceLocation": "", 90s # "keywordLocation": "/uniqueItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1194 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/additionalItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/additionalItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1195 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1196 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1197 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1198 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1199 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1200 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1201 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1202 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1203 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1204 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1205 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1206 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1207 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1208 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1209 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1210 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1211 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1212 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1213 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1214 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1215 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1216 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1217 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1218 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1219 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1220 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1221 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1222 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/additionalItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional item not permitted", 90s # "instanceLocation": "/2", 90s # "keywordLocation": "/additionalItems" 90s # }, 90s # { 90s # "error": "subschema is not valid against all additional items", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 1223 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "applicator vocabulary still works" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 90s # "error": "property not permitted", 90s # "instanceLocation": "/badProperty", 90s # "keywordLocation": "/properties/badProperty" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 90s # "error": "property not permitted", 90s # "instanceLocation": "/badProperty", 90s # "keywordLocation": "/properties/badProperty" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/properties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1224 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: valid number" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1225 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: invalid number, but it still validates" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1226 - vocabulary.json: "ignore unrecognized optional vocabulary" - "string value" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not number", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1227 - vocabulary.json: "ignore unrecognized optional vocabulary" - "number value" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 1228 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "exact match to enum, and type matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1229 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "in implementations that strip $anchor, this may match either $def" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/$ref/enum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/$ref/enum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 90s # "error": "got object, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1230 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "match $ref to $anchor" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1231 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "no match on enum or $ref to $anchor" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/$ref/enum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/$ref/enum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 1232 - optional/bignum.json: "integer" - "a bignum is an integer" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1233 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1234 - optional/bignum.json: "number" - "a bignum is a number" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1235 - optional/bignum.json: "number" - "a negative bignum is a number" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1236 - optional/bignum.json: "string" - "a bignum is not a string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/type" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1237 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1238 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMaximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMaximum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1239 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1240 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMinimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 90s # "instanceLocation": "", 90s # "keywordLocation": "/exclusiveMinimum" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 1241 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "first item not a string is invalid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/$ref/prefixItems/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems", 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/prefixItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems/0/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "/0", 90s # "keywordLocation": "/$ref/prefixItems/0/type" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems", 90s # "error": "not all items are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref/prefixItems" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1242 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "first item is a string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1243 - optional/cross-draft.json: "refs to historic drafts are processed as historic drafts" - "missing bar is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 1244 - optional/dependencies-compatibility.json: "single dependency" - "neither" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1245 - optional/dependencies-compatibility.json: "single dependency" - "nondependant" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1246 - optional/dependencies-compatibility.json: "single dependency" - "with dependency" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1247 - optional/dependencies-compatibility.json: "single dependency" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "bar": [ 90s # "foo" 90s # ] 90s # } 90s # } 90s # data: { 90s # "bar": 2 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1248 - optional/dependencies-compatibility.json: "single dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1249 - optional/dependencies-compatibility.json: "single dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1250 - optional/dependencies-compatibility.json: "single dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1251 - optional/dependencies-compatibility.json: "empty dependents" - "empty object" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1252 - optional/dependencies-compatibility.json: "empty dependents" - "object with one property" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1253 - optional/dependencies-compatibility.json: "empty dependents" - "non-object is valid" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1254 - optional/dependencies-compatibility.json: "multiple dependents required" - "neither" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1255 - optional/dependencies-compatibility.json: "multiple dependents required" - "nondependants" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1256 - optional/dependencies-compatibility.json: "multiple dependents required" - "with dependencies" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1257 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "quux": [ 90s # "foo", 90s # "bar" 90s # ] 90s # } 90s # } 90s # data: { 90s # "foo": 1, 90s # "quux": 2 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1258 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing other dependency" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "quux": [ 90s # "foo", 90s # "bar" 90s # ] 90s # } 90s # } 90s # data: { 90s # "bar": 1, 90s # "quux": 2 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1259 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing both dependencies" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "quux": [ 90s # "foo", 90s # "bar" 90s # ] 90s # } 90s # } 90s # data: { 90s # "quux": 1 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1260 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1261 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1262 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF missing dependent" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "foo\nbar": [ 90s # "foo\rbar" 90s # ], 90s # "foo\"bar": [ 90s # "foo'bar" 90s # ] 90s # } 90s # } 90s # data: { 90s # "foo": 2, 90s # "foo\nbar": 1 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1263 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "foo\nbar": [ 90s # "foo\rbar" 90s # ], 90s # "foo\"bar": [ 90s # "foo'bar" 90s # ] 90s # } 90s # } 90s # data: { 90s # "foo\"bar": 2 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1264 - optional/dependencies-compatibility.json: "single schema dependency" - "valid" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1265 - optional/dependencies-compatibility.json: "single schema dependency" - "no dependency" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1266 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "bar": { 90s # "properties": { 90s # "bar": { 90s # "type": "integer" 90s # }, 90s # "foo": { 90s # "type": "integer" 90s # } 90s # } 90s # } 90s # } 90s # } 90s # data: { 90s # "bar": 2, 90s # "foo": "quux" 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1267 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type other" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "bar": { 90s # "properties": { 90s # "bar": { 90s # "type": "integer" 90s # }, 90s # "foo": { 90s # "type": "integer" 90s # } 90s # } 90s # } 90s # } 90s # } 90s # data: { 90s # "bar": "quux", 90s # "foo": 2 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1268 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type both" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "bar": { 90s # "properties": { 90s # "bar": { 90s # "type": "integer" 90s # }, 90s # "foo": { 90s # "type": "integer" 90s # } 90s # } 90s # } 90s # } 90s # } 90s # data: { 90s # "bar": "quux", 90s # "foo": "quux" 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1269 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1270 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1271 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1272 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema true is valid" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1273 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema false is invalid" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "bar": false, 90s # "foo": true 90s # } 90s # } 90s # data: { 90s # "bar": 2 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1274 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with both properties is invalid" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "bar": false, 90s # "foo": true 90s # } 90s # } 90s # data: { 90s # "bar": 2, 90s # "foo": 1 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1275 - optional/dependencies-compatibility.json: "boolean subschemas" - "empty object is valid" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1276 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1277 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "foo\tbar": { 90s # "minProperties": 4 90s # }, 90s # "foo'bar": { 90s # "required": [ 90s # "foo\"bar" 90s # ] 90s # } 90s # } 90s # } 90s # data: { 90s # "foo'bar": { 90s # "foo\"bar": 1 90s # } 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1278 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "foo\tbar": { 90s # "minProperties": 4 90s # }, 90s # "foo'bar": { 90s # "required": [ 90s # "foo\"bar" 90s # ] 90s # } 90s # } 90s # } 90s # data: { 90s # "a": 2, 90s # "foo\tbar": 1 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1279 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "dependencies": { 90s # "foo\tbar": { 90s # "minProperties": 4 90s # }, 90s # "foo'bar": { 90s # "required": [ 90s # "foo\"bar" 90s # ] 90s # } 90s # } 90s # } 90s # data: { 90s # "foo'bar": 1 90s # } 90s # result: 1 90s 1..1 90s } 90s # 90s ok 1280 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1281 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1282 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1283 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1284 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1285 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1286 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1287 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1288 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1289 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "pattern": "^\\d$", 90s # "type": "string" 90s # } 90s # data: "߀" 90s # result: 1 90s 1..1 90s } 90s ok 1290 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO (as \u escape) does not match" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "pattern": "^\\d$", 90s # "type": "string" 90s # } 90s # data: "߀" 90s # result: 1 90s 1..1 90s } 90s ok 1291 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false # 90s 1..1 90s } 90s ok 1292 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected true; got false 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "pattern": "^\\D$", 90s # "type": "string" 90s # } 90s # data: "߀" 90s # result: 0 90s 1..1 90s } 90s ok 1293 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO (as \u escape) matches" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected true; got false 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "pattern": "^\\D$", 90s # "type": "string" 90s # } 90s # data: "߀" 90s # result: 0 90s 1..1 90s } 90s ok 1294 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true # 90s 1..1 90s } 90s ok 1295 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "latin-1 e-acute does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "pattern": "^\\w$", 90s # "type": "string" 90s # } 90s # data: "é" 90s # result: 1 90s 1..1 90s } 90s ok 1296 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false # 90s 1..1 90s } 90s ok 1297 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "latin-1 e-acute matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected true; got false 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "pattern": "^\\W$", 90s # "type": "string" 90s # } 90s # data: "é" 90s # result: 0 90s 1..1 90s } 90s ok 1298 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1299 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1300 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1301 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1302 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1303 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected true; got false 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "pattern": "^\\s$", 90s # "type": "string" 90s # } 90s # data: "" 90s # result: 0 90s 1..1 90s } 90s ok 1304 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1305 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1306 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1307 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1308 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1309 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1310 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1311 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1312 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1313 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1314 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "pattern": "^\\S$", 90s # "type": "string" 90s # } 90s # data: "" 90s # result: 1 90s 1..1 90s } 90s ok 1315 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1316 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1317 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1318 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1319 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1320 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1321 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1322 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1323 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1324 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1325 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "pattern": "\\wcole" 90s # } 90s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 90s # result: 1 90s 1..1 90s } 90s ok 1326 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "pattern": "\\wcole" 90s # } 90s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 90s # result: 1 90s 1..1 90s } 90s ok 1327 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1328 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1329 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1330 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1331 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1332 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1333 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "pattern": "^\\d+$" 90s # } 90s # data: "৪২" 90s # result: 1 90s 1..1 90s } 90s ok 1334 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1335 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1336 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1337 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1338 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1339 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1340 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/L'ÉCOLE", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/L'ÉCOLE", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1341 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1342 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "additionalProperties": false, 90s # "patternProperties": { 90s # "\\wcole": true 90s # }, 90s # "type": "object" 90s # } 90s # data: { 90s # "l'école": "pas de vraie vie" 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1343 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "additionalProperties": false, 90s # "patternProperties": { 90s # "\\wcole": true 90s # }, 90s # "type": "object" 90s # } 90s # data: { 90s # "l'école": "pas de vraie vie" 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1344 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/L'ÉCOLE", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/L'ÉCOLE", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1345 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/l'école", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/l'école", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1346 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/l'école", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/l'école", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1347 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1348 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1349 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/-%#", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/-%#", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1350 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected false; got true 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "additionalProperties": false, 90s # "patternProperties": { 90s # "^\\d+$": true 90s # }, 90s # "type": "object" 90s # } 90s # data: { 90s # "৪২": "khajit has wares if you have coin" 90s # } 90s # result: 1 90s 1..1 90s } 90s ok 1351 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1352 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/-%#", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "additional property not permitted", 90s # "instanceLocation": "/-%#", 90s # "keywordLocation": "/additionalProperties" 90s # }, 90s # { 90s # "error": "not all additional properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/additionalProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1353 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 1354 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 1355 - optional/id.json: "$id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1356 - optional/id.json: "$id inside an enum is not a real identifier" - "match $ref to $id" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1357 - optional/id.json: "$id inside an enum is not a real identifier" - "no match on enum or $ref to $id" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/$ref/enum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/id/my_identifier.json#/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 90s # "error": "value does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/$ref/enum" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/id/my_identifier.json#/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 1358 - optional/no-schema.json: "validation without $schema" - "a 3-character string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1359 - optional/no-schema.json: "validation without $schema" - "a 1-character string is not valid" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "length is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "length is less than 2", 90s # "instanceLocation": "", 90s # "keywordLocation": "/minLength" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1360 - optional/no-schema.json: "validation without $schema" - "a non-string is valid" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s # 90s ok 1361 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1362 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1363 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1364 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1365 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1366 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1367 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "pattern does not match", 90s # "instanceLocation": "", 90s # "keywordLocation": "/pattern" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1368 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1369 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1370 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1371 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/🐲", 90s # "keywordLocation": "/patternProperties/^🐲*$/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/🐲", 90s # "keywordLocation": "/patternProperties/^🐲*$/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1372 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/🐲🐲", 90s # "keywordLocation": "/patternProperties/^🐲*$/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "got string, not integer", 90s # "instanceLocation": "/🐲🐲", 90s # "keywordLocation": "/patternProperties/^🐲*$/type" 90s # }, 90s # { 90s # "error": "not all properties are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/patternProperties" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s ok 1373 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "match" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected true; got false 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "properties": { 90s # "bar": { 90s # "$ref": "#/unknown-keyword" 90s # } 90s # }, 90s # "unknown-keyword": { 90s # "type": "integer" 90s # } 90s # } 90s # data: { 90s # "bar": 3 90s # } 90s # result: null 90s 1..1 90s } 90s ok 1374 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "mismatch" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false # 90s 1..1 90s } 90s ok 1375 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "match" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected true; got false 90s # schema: { 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "properties": { 90s # "bar": { 90s # "$ref": "#/properties/foo/unknown-keyword" 90s # }, 90s # "foo": { 90s # "unknown-keyword": { 90s # "type": "integer" 90s # } 90s # } 90s # } 90s # } 90s # data: { 90s # "bar": 3 90s # } 90s # result: null 90s 1..1 90s } 90s ok 1376 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "mismatch" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 90s # "instanceLocation": "/bar", 90s # "keywordLocation": "/properties/bar/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false # 90s 1..1 90s } 90s ok 1377 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "match" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "/base#/$ref", 90s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "/base#/$ref", 90s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s not ok 1 - evaluation result is incorrect # 90s # Failed test (with amnesty) 'evaluation result is incorrect' 90s # at t/zzz-acceptance-draft2019-09.t line 54. 90s # expected true; got false 90s # schema: { 90s # "$id": "/base", 90s # "$ref": "#/examples/0", 90s # "$schema": "https://json-schema.org/draft/2019-09/schema", 90s # "examples": [ 90s # { 90s # "type": "string" 90s # } 90s # ] 90s # } 90s # data: "a string" 90s # result: null 90s 1..1 90s } 90s ok 1378 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "mismatch" { # TODO Test marked TODO via "todo_tests" 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "/base#/$ref", 90s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "/base#/$ref", 90s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 90s # "instanceLocation": "", 90s # "keywordLocation": "/$ref" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false # 90s 1..1 90s } 90s # 90s ok 1379 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 90s # result: { 90s # "valid": true 90s # } 90s # short-circuited result: { 90s # "valid": true 90s # } 90s ok 1 - test passes: data is valid: true 90s 1..1 90s } 90s ok 1380 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/$ref/not" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/not" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 90s # "error": "got null, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/2/$ref/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/$ref/not" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/not" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 90s # "error": "got null, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/2/$ref/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s ok 1381 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 90s # result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/$ref/not" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/not" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/2/$ref/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s # short-circuited result: { 90s # "errors": [ 90s # { 90s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/0/$ref/not" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 90s # "error": "subschema is valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/1/$ref/not" 90s # }, 90s # { 90s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 90s # "error": "got integer, not string", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf/2/$ref/type" 90s # }, 90s # { 90s # "error": "no subschemas are valid", 90s # "instanceLocation": "", 90s # "keywordLocation": "/anyOf" 90s # } 90s # ], 90s # "valid": false 90s # } 90s ok 1 - test passes: data is valid: false 90s 1..1 90s } 90s # 90s # generated with: Test::JSON::Schema::Acceptance 1.029 90s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 90s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 90s # specification version: draft2019-09 90s # optional tests included: yes 90s # skipping directory: optional/format 90s # 90s # filename pass todo-fail fail 90s # --------------------------------------------------------------- 90s # additionalItems.json 20 0 0 90s # additionalProperties.json 21 0 0 90s # allOf.json 30 0 0 90s # anchor.json 8 0 0 90s # anyOf.json 18 0 0 90s # boolean_schema.json 18 0 0 90s # const.json 50 0 0 90s # contains.json 21 0 0 90s # content.json 18 0 0 90s # default.json 7 0 0 90s # defs.json 2 0 0 90s # dependentRequired.json 20 0 0 90s # dependentSchemas.json 20 0 0 90s # enum.json 45 0 0 90s # exclusiveMaximum.json 4 0 0 90s # exclusiveMinimum.json 4 0 0 90s # format.json 114 0 0 90s # if-then-else.json 26 0 0 90s # infinite-loop-detection.json 2 0 0 90s # items.json 28 0 0 90s # maxContains.json 12 0 0 90s # maxItems.json 6 0 0 90s # maxLength.json 7 0 0 90s # maxProperties.json 10 0 0 90s # maximum.json 8 0 0 90s # minContains.json 28 0 0 90s # minItems.json 6 0 0 90s # minLength.json 7 0 0 90s # minProperties.json 8 0 0 90s # minimum.json 11 0 0 90s # multipleOf.json 10 0 0 90s # not.json 40 0 0 90s # oneOf.json 27 0 0 90s # pattern.json 9 0 0 90s # patternProperties.json 23 0 0 90s # properties.json 28 0 0 90s # propertyNames.json 20 0 0 90s # recursiveRef.json 34 0 0 90s # ref.json 79 0 0 90s # refRemote.json 31 0 0 90s # required.json 16 0 0 90s # type.json 80 0 0 90s # unevaluatedItems.json 55 0 0 90s # unevaluatedProperties.json 122 0 0 90s # uniqueItems.json 69 0 0 90s # vocabulary.json 5 0 0 90s # optional/anchor.json 4 0 0 90s # optional/bignum.json 9 0 0 90s # optional/cross-draft.json 3 0 0 90s # optional/dependencies-compatibility.json 22 14 0 90s # optional/ecmascript-regex.json 60 14 0 90s # optional/float-overflow.json 1 0 0 90s # optional/id.json 3 0 0 90s # optional/no-schema.json 3 0 0 90s # optional/non-bmp-regex.json 12 0 0 90s # optional/refOfUnknownKeyword.json 3 3 0 90s # optional/unknownKeyword.json 3 0 0 90s # --------------------------------------------------------------- 90s # TOTAL 1350 31 0 90s # 90s # Congratulations, all non-optional tests are passing! 90s # 90s ok 1382 - no leaks in the main evaluator object 90s ok 1383 - no leaks in the short-circuiting evaluator object 90s 1..1383 90s ok 91s t/zzz-acceptance-draft2020-12-format.t .. 91s # 91s # AUTHOR_TESTING: 91s # AUTOMATED_TESTING: 1 91s # EXTENDED_TESTING: 91s # NO_TODO: 91s # TEST_DIR: 91s # NO_SHORT_CIRCUIT: 91s # 91s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2020-12/optional/format against draft2020-12... 91s # 91s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 32 - date.json: "validation of date strings" - "a valid date string" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 64 - date.json: "validation of date strings" - "invalid month" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 73 - duration.json: "validation of duration strings" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 74 - duration.json: "validation of duration strings" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 75 - duration.json: "validation of duration strings" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 76 - duration.json: "validation of duration strings" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 77 - duration.json: "validation of duration strings" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 78 - duration.json: "validation of duration strings" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 79 - duration.json: "validation of duration strings" - "a valid duration string" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 80 - duration.json: "validation of duration strings" - "an invalid duration string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 81 - duration.json: "validation of duration strings" - "must start with P" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 82 - duration.json: "validation of duration strings" - "no elements present" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 83 - duration.json: "validation of duration strings" - "no time elements present" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 84 - duration.json: "validation of duration strings" - "no date or time elements present" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 85 - duration.json: "validation of duration strings" - "elements out of order" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 86 - duration.json: "validation of duration strings" - "missing time separator" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 87 - duration.json: "validation of duration strings" - "time element in the date position" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 88 - duration.json: "validation of duration strings" - "four years duration" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 89 - duration.json: "validation of duration strings" - "zero time, in seconds" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 90 - duration.json: "validation of duration strings" - "zero time, in days" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 91 - duration.json: "validation of duration strings" - "one month duration" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 92 - duration.json: "validation of duration strings" - "one minute duration" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 93 - duration.json: "validation of duration strings" - "one and a half days, in hours" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 94 - duration.json: "validation of duration strings" - "one and a half days, in days and hours" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 95 - duration.json: "validation of duration strings" - "two weeks" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 96 - duration.json: "validation of duration strings" - "weeks cannot be combined with other units" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 97 - duration.json: "validation of duration strings" - "invalid non-ASCII '২' (a Bengali 2)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 98 - duration.json: "validation of duration strings" - "element without unit" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 99 - ecmascript-regex.json: "\a is not an ECMA 262 control escape" - "when used as a pattern" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "regex" 91s # } 91s # data: "\\a" 91s # result: 1 91s 1..1 91s } 91s # 91s ok 100 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 101 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 102 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 103 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 104 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 105 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 106 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 107 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 108 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 109 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 110 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 111 - email.json: "validation of e-mail addresses" - "a quoted string with a space in the local part is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 112 - email.json: "validation of e-mail addresses" - "a quoted string with a double dot in the local part is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 113 - email.json: "validation of e-mail addresses" - "a quoted string with a @ in the local part is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 114 - email.json: "validation of e-mail addresses" - "an IPv4-address-literal after the @ is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 115 - email.json: "validation of e-mail addresses" - "an IPv6-address-literal after the @ is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 116 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 117 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 118 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 119 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 120 - email.json: "validation of e-mail addresses" - "an invalid domain" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "email" 91s # } 91s # data: "joe.bloggs@invalid=domain.com" 91s # result: 1 91s 1..1 91s } 91s ok 121 - email.json: "validation of e-mail addresses" - "an invalid IPv4-address-literal" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "email" 91s # } 91s # data: "joe.bloggs@[127.0.0.300]" 91s # result: 1 91s 1..1 91s } 91s # 91s ok 122 - hostname.json: "validation of host names" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 123 - hostname.json: "validation of host names" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 124 - hostname.json: "validation of host names" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 125 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 126 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 127 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 128 - hostname.json: "validation of host names" - "a valid host name" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 129 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 130 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 131 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 132 - hostname.json: "validation of host names" - "a host name with a component too long" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 133 - hostname.json: "validation of host names" - "starts with hyphen" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 134 - hostname.json: "validation of host names" - "ends with hyphen" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 135 - hostname.json: "validation of host names" - "starts with underscore" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 136 - hostname.json: "validation of host names" - "ends with underscore" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 137 - hostname.json: "validation of host names" - "contains underscore" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 138 - hostname.json: "validation of host names" - "maximum label length" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 139 - hostname.json: "validation of host names" - "exceeds maximum label length" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 140 - hostname.json: "validation of host names" - "single label" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 141 - hostname.json: "validation of host names" - "single label with hyphen" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 142 - hostname.json: "validation of host names" - "single label with digits" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 143 - hostname.json: "validation of host names" - "single label starting with digit" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 144 - hostname.json: "validation of host names" - "single label ending with digit" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 145 - hostname.json: "validation of host names" - "empty string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 146 - hostname.json: "validation of host names" - "single dot" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 147 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 148 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 149 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 150 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 151 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 152 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 153 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 154 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 155 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 156 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 157 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 158 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 159 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 160 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 161 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 162 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 163 - idn-hostname.json: "validation of internationalized host names" - "a valid host name (example.test in Hangul)" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 164 - idn-hostname.json: "validation of internationalized host names" - "illegal first char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 165 - idn-hostname.json: "validation of internationalized host names" - "contains illegal char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "실〮례.테스트" 91s # result: 1 91s 1..1 91s } 91s ok 166 - idn-hostname.json: "validation of internationalized host names" - "a host name with a component too long" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 167 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 168 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 169 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "xn--X" 91s # result: 1 91s 1..1 91s } 91s ok 170 - idn-hostname.json: "validation of internationalized host names" - "U-label contains "--" in the 3rd and 4th position" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "XN--aa---o47jg78q" 91s # result: 1 91s 1..1 91s } 91s ok 171 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 172 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 173 - idn-hostname.json: "validation of internationalized host names" - "U-label starts and ends with a dash" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 174 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 175 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 176 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 177 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 178 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 179 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "ـߺ" 91s # result: 1 91s 1..1 91s } 91s ok 180 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "〱〲〳〴〵〮〯〻" 91s # result: 1 91s 1..1 91s } 91s ok 181 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "a·l" 91s # result: 1 91s 1..1 91s } 91s ok 182 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "·l" 91s # result: 1 91s 1..1 91s } 91s ok 183 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "l·a" 91s # result: 1 91s 1..1 91s } 91s ok 184 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "l·" 91s # result: 1 91s 1..1 91s } 91s ok 185 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 186 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "α͵S" 91s # result: 1 91s 1..1 91s } 91s ok 187 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "α͵" 91s # result: 1 91s 1..1 91s } 91s ok 188 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 189 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 190 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "׳ב" 91s # result: 1 91s 1..1 91s } 91s ok 191 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 192 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 193 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "״ב" 91s # result: 1 91s 1..1 91s } 91s ok 194 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 195 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "def・abc" 91s # result: 1 91s 1..1 91s } 91s ok 196 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "・" 91s # result: 1 91s 1..1 91s } 91s ok 197 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 198 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 199 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 200 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 201 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits not mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 202 - idn-hostname.json: "validation of internationalized host names" - "Extended Arabic-Indic digits not mixed with Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 203 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 204 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 205 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 206 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 207 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER not preceded by Virama but matches regexp" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 208 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 209 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 210 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 211 - idn-hostname.json: "validation of internationalized host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 212 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 213 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 214 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 215 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 216 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 217 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 218 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 219 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 220 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 221 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s # 91s ok 222 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 223 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 224 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 225 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 226 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 227 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 228 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 229 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 230 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 231 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 232 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 233 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 234 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 235 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 236 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 237 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 238 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 239 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 240 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 241 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 242 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 243 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 244 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 245 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 246 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 247 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 248 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 249 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 250 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 251 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 252 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 253 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 254 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 255 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 256 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 257 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 258 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 259 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 260 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 261 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 262 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 263 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 264 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 265 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 266 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 267 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 268 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 269 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 270 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 271 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 272 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 273 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 274 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 275 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 276 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 277 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 278 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 279 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 280 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 281 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 282 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 283 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 284 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 285 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 286 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 287 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "iri-reference" 91s # } 91s # data: "\\\\WINDOWS\\filëßåré" 91s # result: 1 91s 1..1 91s } 91s ok 288 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 289 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 290 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "iri-reference" 91s # } 91s # data: "#ƒräg\\mênt" 91s # result: 1 91s 1..1 91s } 91s # 91s ok 291 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 292 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 293 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 294 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 295 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 296 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 297 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 298 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 299 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 300 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 301 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 302 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "iri" 91s # } 91s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 91s # result: 1 91s 1..1 91s } 91s ok 303 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 304 - iri.json: "validation of IRIs" - "an invalid IRI" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 305 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 308 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 309 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 310 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 311 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 312 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 313 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 314 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 315 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 316 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 317 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 318 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 319 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 320 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 321 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 322 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 323 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 324 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 325 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 326 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 327 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 328 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 329 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 330 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 331 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 332 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 333 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 334 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 335 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 336 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 337 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 338 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 339 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 340 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 341 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 342 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 343 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 344 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 345 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 346 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 347 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 348 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 349 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 350 - regex.json: "validation of regular expressions" - "a valid regular expression" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 351 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid regex string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid regex string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 352 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 353 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 354 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 355 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 356 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 357 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 358 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 359 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 360 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 361 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 362 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 363 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 364 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 365 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 366 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 367 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 368 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 369 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s # 91s ok 370 - time.json: "validation of time strings" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 371 - time.json: "validation of time strings" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 372 - time.json: "validation of time strings" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 373 - time.json: "validation of time strings" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 374 - time.json: "validation of time strings" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 375 - time.json: "validation of time strings" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 376 - time.json: "validation of time strings" - "a valid time string" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 377 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 378 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 379 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 380 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 381 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 382 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 383 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 384 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 385 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 386 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 387 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 388 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 389 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 390 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 391 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 392 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 393 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 394 - time.json: "validation of time strings" - "a valid time string with second fraction" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 395 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 396 - time.json: "validation of time strings" - "a valid time string with plus offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 397 - time.json: "validation of time strings" - "a valid time string with minus offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 398 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 399 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 400 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 401 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 402 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 403 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 404 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 405 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 406 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 407 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 408 - time.json: "validation of time strings" - "an invalid offset indicator" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 409 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 410 - time.json: "validation of time strings" - "no time offset" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 411 - time.json: "validation of time strings" - "no time offset with second fraction" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 412 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 413 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 414 - time.json: "validation of time strings" - "contains letters" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 415 - unknown.json: "unknown format" - "unknown formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 416 - unknown.json: "unknown format" - "unknown formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 417 - unknown.json: "unknown format" - "unknown formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 418 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 419 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 420 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 421 - unknown.json: "unknown format" - "unknown formats ignore strings" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s # 91s ok 422 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 423 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 424 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 425 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 426 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 427 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 428 - uri-reference.json: "validation of URI References" - "a valid URI" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 429 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 430 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 431 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri-reference string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri-reference string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 432 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 433 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 434 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri-reference string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri-reference string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 435 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 436 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 437 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 438 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 439 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 440 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 441 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 442 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "uri-template" 91s # } 91s # data: "http://example.com/dictionary/{term:1}/{term" 91s # result: 1 91s 1..1 91s } 91s ok 443 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 444 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s # 91s ok 445 - uri.json: "validation of URIs" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 446 - uri.json: "validation of URIs" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 447 - uri.json: "validation of URIs" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 448 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 449 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 450 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 451 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 452 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 453 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 454 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 455 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 456 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 457 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 458 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 459 - uri.json: "validation of URIs" - "a valid URL " { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 460 - uri.json: "validation of URIs" - "a valid mailto URI" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 461 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 462 - uri.json: "validation of URIs" - "a valid tel URI" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 463 - uri.json: "validation of URIs" - "a valid URN" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 464 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 465 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 466 - uri.json: "validation of URIs" - "an invalid URI" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 467 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 468 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 469 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 470 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2020-12-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2020-12/schema", 91s # "format": "uri" 91s # } 91s # data: "bar,baz:foo" 91s # result: 1 91s 1..1 91s } 91s # 91s ok 471 - uuid.json: "uuid format" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 472 - uuid.json: "uuid format" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 473 - uuid.json: "uuid format" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 474 - uuid.json: "uuid format" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 475 - uuid.json: "uuid format" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 476 - uuid.json: "uuid format" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 477 - uuid.json: "uuid format" - "all upper-case" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 478 - uuid.json: "uuid format" - "all lower-case" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 479 - uuid.json: "uuid format" - "mixed case" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 480 - uuid.json: "uuid format" - "all zeroes is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 481 - uuid.json: "uuid format" - "wrong length" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 482 - uuid.json: "uuid format" - "missing section" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 483 - uuid.json: "uuid format" - "bad characters (not hex)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 484 - uuid.json: "uuid format" - "no dashes" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 485 - uuid.json: "uuid format" - "too few dashes" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 486 - uuid.json: "uuid format" - "too many dashes" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 487 - uuid.json: "uuid format" - "dashes in the wrong spot" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid uuid string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 488 - uuid.json: "uuid format" - "valid version 4" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 489 - uuid.json: "uuid format" - "valid version 5" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 490 - uuid.json: "uuid format" - "hypothetical version 6" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 491 - uuid.json: "uuid format" - "hypothetical version 15" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s # 91s # generated with: Test::JSON::Schema::Acceptance 1.029 91s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 91s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 91s # specification version: draft2020-12 91s # using custom test directory: /optional/format 91s # optional tests included: yes 91s # 91s # filename pass todo-fail fail 91s # --------------------------------------------------------------- 91s # date-time.json 25 0 0 91s # date.json 47 0 0 91s # duration.json 26 0 0 91s # ecmascript-regex.json 0 1 0 91s # email.json 20 2 0 91s # hostname.json 25 0 0 91s # idn-email.json 10 0 0 91s # idn-hostname.json 50 15 0 91s # ipv4.json 16 0 0 91s # ipv6.json 40 0 0 91s # iri-reference.json 11 2 0 91s # iri.json 14 1 0 91s # json-pointer.json 38 0 0 91s # regex.json 8 0 0 91s # relative-json-pointer.json 18 0 0 91s # time.json 45 0 0 91s # unknown.json 7 0 0 91s # uri-reference.json 13 0 0 91s # uri-template.json 9 1 0 91s # uri.json 25 1 0 91s # uuid.json 21 0 0 91s # --------------------------------------------------------------- 91s # TOTAL 468 23 0 91s # 91s # Congratulations, all non-optional tests are passing! 91s # 91s ok 492 - no leaks in the main evaluator object 91s ok 493 - no leaks in the short-circuiting evaluator object 91s 1..493 91s ok 97s t/zzz-acceptance-draft2020-12.t ......... 97s # 97s # AUTHOR_TESTING: 97s # AUTOMATED_TESTING: 1 97s # EXTENDED_TESTING: 97s # NO_TODO: 97s # TEST_DIR: 97s # NO_SHORT_CIRCUIT: 97s # 97s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 97s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2020-12 against draft2020-12... 97s # 97s ok 1 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 2 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 3 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 4 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 5 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 6 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 7 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 8 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/élmény", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/élmény", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 9 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 10 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 11 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 12 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 13 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 14 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 15 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 16 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 17 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against both keywords" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 18 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against propertyNames, but not additionalProperties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/pear", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/pear", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 19 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties doesn't consider dependentSchemas" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 20 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 21 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar even when foo2 is present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 22 - allOf.json: "allOf" - "allOf" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 23 - allOf.json: "allOf" - "mismatch second" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 24 - allOf.json: "allOf" - "mismatch first" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/required" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/required" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 25 - allOf.json: "allOf" - "wrong type" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/properties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/properties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 26 - allOf.json: "allOf with base schema" - "valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 27 - allOf.json: "allOf with base schema" - "mismatch base schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 28 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 29 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: baz", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/required" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: baz", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/required" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 30 - allOf.json: "allOf with base schema" - "mismatch both" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "object is missing property: baz", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/required" 97s # }, 97s # { 97s # "error": "subschemas 0, 1 are not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 31 - allOf.json: "allOf simple types" - "valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 32 - allOf.json: "allOf simple types" - "mismatch one" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 30", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/maximum" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 30", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/maximum" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 33 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 34 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 35 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1" 97s # }, 97s # { 97s # "error": "subschemas 0, 1 are not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 36 - allOf.json: "allOf with one empty schema" - "any data is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 37 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 38 - allOf.json: "allOf with the first empty schema" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 39 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/type" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/type" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 40 - allOf.json: "allOf with the last empty schema" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 41 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 42 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 43 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/allOf/0/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/allOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/allOf/0/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/allOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 44 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 45 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 46 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 47 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 48 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 49 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 50 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 51 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 52 - anchor.json: "Location-independent identifier" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 53 - anchor.json: "Location-independent identifier" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 54 - anchor.json: "Location-independent identifier with absolute URI" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 55 - anchor.json: "Location-independent identifier with absolute URI" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/bar#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/bar#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 56 - anchor.json: "Location-independent identifier with base URI change in subschema" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 57 - anchor.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested.json#/$defs/B/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested.json#/$defs/B/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 58 - anchor.json: "same $anchor with different base uri" - "$ref resolves to /$defs/A/allOf/1" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 59 - anchor.json: "same $anchor with different base uri" - "$ref does not resolve to /$defs/A/allOf/0" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/child1#/allOf/1/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/child1#/allOf/1/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 60 - anyOf.json: "anyOf" - "first anyOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 61 - anyOf.json: "anyOf" - "second anyOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 62 - anyOf.json: "anyOf" - "both anyOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 63 - anyOf.json: "anyOf" - "neither anyOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "error": "value is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/minimum" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "error": "value is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/minimum" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 64 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 65 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 66 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/maxLength" 97s # }, 97s # { 97s # "error": "length is less than 4", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/minLength" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/maxLength" 97s # }, 97s # { 97s # "error": "length is less than 4", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/minLength" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 67 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 68 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 69 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 70 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 71 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 72 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 73 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/anyOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/properties" 97s # }, 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/properties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/anyOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/properties" 97s # }, 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/properties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 74 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 75 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 76 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 77 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/anyOf/0/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/anyOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/anyOf/0/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/anyOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 78 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 79 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 80 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 81 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 82 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 83 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 84 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 85 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 86 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 87 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 88 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 89 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 90 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 91 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 92 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 93 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 94 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 95 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 96 - const.json: "const validation" - "same value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 97 - const.json: "const validation" - "another value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 98 - const.json: "const validation" - "another type is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 99 - const.json: "const with object" - "same object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 100 - const.json: "const with object" - "same object with different property order is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 101 - const.json: "const with object" - "another object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 102 - const.json: "const with object" - "another type is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 103 - const.json: "const with array" - "same array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 104 - const.json: "const with array" - "another array item is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs object)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs object)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 105 - const.json: "const with array" - "array with additional items is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 106 - const.json: "const with null" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 107 - const.json: "const with null" - "not null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 108 - const.json: "const with false does not match 0" - "false is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 109 - const.json: "const with false does not match 0" - "integer zero is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 110 - const.json: "const with false does not match 0" - "float zero is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 111 - const.json: "const with true does not match 1" - "true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 112 - const.json: "const with true does not match 1" - "integer one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 113 - const.json: "const with true does not match 1" - "float one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 114 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 115 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 116 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 117 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 118 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 119 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 120 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 121 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 122 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 123 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 124 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 125 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 126 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 127 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 128 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 129 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 130 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 131 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 132 - const.json: "const with 1 does not match true" - "true is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 133 - const.json: "const with 1 does not match true" - "integer one is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 134 - const.json: "const with 1 does not match true" - "float one is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 135 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 136 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 137 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 138 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 139 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 140 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 141 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 142 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 143 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 144 - const.json: "nul characters in strings" - "match string with nul" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 145 - const.json: "nul characters in strings" - "do not match string lacking nul" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 146 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 147 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 148 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 149 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 150 - contains.json: "contains keyword validation" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 151 - contains.json: "contains keyword validation" - "not array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 152 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 153 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 154 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 155 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 156 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 157 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 158 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 159 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 160 - contains.json: "items + contains" - "matches items, does not match contains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 161 - contains.json: "items + contains" - "does not match items, matches contains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 162 - contains.json: "items + contains" - "matches both items and contains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 163 - contains.json: "items + contains" - "matches neither items nor contains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 164 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 165 - contains.json: "contains with false if subschema" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 166 - contains.json: "contains with null instance elements" - "allows null items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 167 - content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 168 - content.json: "validation of string-encoded content based on media type" - "an invalid JSON document; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 169 - content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 170 - content.json: "validation of binary string-encoding" - "a valid base64 string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 171 - content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character); validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 172 - content.json: "validation of binary string-encoding" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 173 - content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 174 - content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 175 - content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 176 - content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 177 - content.json: "validation of binary-encoded media type documents with schema" - "a valid base64-encoded JSON document" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 178 - content.json: "validation of binary-encoded media type documents with schema" - "another valid base64-encoded JSON document" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 179 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64-encoded JSON document; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 180 - content.json: "validation of binary-encoded media type documents with schema" - "an empty object as a base64-encoded JSON document; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 181 - content.json: "validation of binary-encoded media type documents with schema" - "an empty array as a base64-encoded JSON document" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 182 - content.json: "validation of binary-encoded media type documents with schema" - "a validly-encoded invalid JSON document; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 183 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64 string that is valid JSON; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 184 - content.json: "validation of binary-encoded media type documents with schema" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 185 - default.json: "invalid type for default" - "valid when property is specified" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 186 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 187 - default.json: "invalid string value for default" - "valid when property is specified" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 188 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 189 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (passing)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 190 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (failing)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 3", 97s # "instanceLocation": "/alpha", 97s # "keywordLocation": "/properties/alpha/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 3", 97s # "instanceLocation": "/alpha", 97s # "keywordLocation": "/properties/alpha/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 191 - default.json: "the default keyword does not do anything if the property is missing" - "missing properties are not filled in with the default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 192 - defs.json: "validate definition against metaschema" - "valid definition schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 193 - defs.json: "validate definition against metaschema" - "invalid definition schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/simpleTypes/enum", 97s # "error": "value does not match", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/0/$ref/enum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf/1/type", 97s # "error": "got integer, not array", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/$defs/foo", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 97s # "error": "subschema 3 is not valid", 97s # "instanceLocation": "/$defs/foo", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties/$defs/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/$defs", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/simpleTypes/enum", 97s # "error": "value does not match", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/0/$ref/enum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf/1/type", 97s # "error": "got integer, not array", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/$defs/foo", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 97s # "error": "subschema 3 is not valid", 97s # "instanceLocation": "/$defs/foo", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties/$defs/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/$defs", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 194 - dependentRequired.json: "single dependency" - "neither" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 195 - dependentRequired.json: "single dependency" - "nondependant" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 196 - dependentRequired.json: "single dependency" - "with dependency" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 197 - dependentRequired.json: "single dependency" - "missing dependency" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 198 - dependentRequired.json: "single dependency" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 199 - dependentRequired.json: "single dependency" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 200 - dependentRequired.json: "single dependency" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 201 - dependentRequired.json: "empty dependents" - "empty object" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 202 - dependentRequired.json: "empty dependents" - "object with one property" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 203 - dependentRequired.json: "empty dependents" - "non-object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 204 - dependentRequired.json: "multiple dependents required" - "neither" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 205 - dependentRequired.json: "multiple dependents required" - "nondependants" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 206 - dependentRequired.json: "multiple dependents required" - "with dependencies" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 207 - dependentRequired.json: "multiple dependents required" - "missing dependency" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 208 - dependentRequired.json: "multiple dependents required" - "missing other dependency" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 209 - dependentRequired.json: "multiple dependents required" - "missing both dependencies" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: foo, bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: foo, bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 210 - dependentRequired.json: "dependencies with escaped characters" - "CRLF" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 211 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 212 - dependentRequired.json: "dependencies with escaped characters" - "CRLF missing dependent" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\rbar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/foo\nbar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\rbar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/foo\nbar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 213 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo'bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/foo\"bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo'bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/foo\"bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 214 - dependentSchemas.json: "single dependency" - "valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 215 - dependentSchemas.json: "single dependency" - "no dependency" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 216 - dependentSchemas.json: "single dependency" - "wrong type" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 217 - dependentSchemas.json: "single dependency" - "wrong type other" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 218 - dependentSchemas.json: "single dependency" - "wrong type both" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 97s # }, 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 219 - dependentSchemas.json: "single dependency" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 220 - dependentSchemas.json: "single dependency" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 221 - dependentSchemas.json: "single dependency" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 222 - dependentSchemas.json: "boolean subschemas" - "object with property having schema true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 223 - dependentSchemas.json: "boolean subschemas" - "object with property having schema false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 224 - dependentSchemas.json: "boolean subschemas" - "object with both properties is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 225 - dependentSchemas.json: "boolean subschemas" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 226 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 227 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\"bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo'bar/required" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\"bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo'bar/required" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 228 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab invalid under dependent schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 4 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 4 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 229 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote invalid under dependent schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\"bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo'bar/required" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\"bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo'bar/required" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 230 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches root" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 231 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches dependency" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 232 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches both" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 233 - dependentSchemas.json: "dependent subschema incompatible with root" - "no dependency" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 234 - dynamicRef.json: "A $dynamicRef to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array of strings is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 235 - dynamicRef.json: "A $dynamicRef to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array containing non-strings is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/$defs/foo/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/$defs/foo/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 236 - dynamicRef.json: "A $dynamicRef to an $anchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array of strings is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 237 - dynamicRef.json: "A $dynamicRef to an $anchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array containing non-strings is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/$defs/foo/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/$defs/foo/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 238 - dynamicRef.json: "A $ref to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array of strings is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 239 - dynamicRef.json: "A $ref to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor" - "An array containing non-strings is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/$defs/foo/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/$defs/foo/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 240 - dynamicRef.json: "A $dynamicRef resolves to the first $dynamicAnchor still in scope that is encountered when the schema is evaluated" - "An array of strings is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 241 - dynamicRef.json: "A $dynamicRef resolves to the first $dynamicAnchor still in scope that is encountered when the schema is evaluated" - "An array containing non-strings is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/root#/$defs/foo/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/$ref/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/list#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/root#/$defs/foo/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/$ref/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/list#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 242 - dynamicRef.json: "A $dynamicRef without anchor in fragment behaves identical to $ref" - "An array of strings is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/$ref/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/$ref/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/$ref/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 243 - dynamicRef.json: "A $dynamicRef without anchor in fragment behaves identical to $ref" - "An array of numbers is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 244 - dynamicRef.json: "A $dynamicRef with intermediate scopes that don't include a matching $dynamicAnchor does not affect dynamic scope resolution" - "An array of strings is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 245 - dynamicRef.json: "A $dynamicRef with intermediate scopes that don't include a matching $dynamicAnchor does not affect dynamic scope resolution" - "An array containing non-strings is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root#/$defs/foo/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/$ref/$ref/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/list#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root#/$defs/foo/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/$ref/$ref/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/list#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 246 - dynamicRef.json: "An $anchor with the same name as a $dynamicAnchor is not used for dynamic scope resolution" - "Any array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 247 - dynamicRef.json: "A $dynamicRef without a matching $dynamicAnchor in the same schema resource behaves like a normal $ref to $anchor" - "Any array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 248 - dynamicRef.json: "A $dynamicRef with a non-matching $dynamicAnchor in the same schema resource behaves like a normal $ref to $anchor" - "Any array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 249 - dynamicRef.json: "A $dynamicRef that initially resolves to a schema with a matching $dynamicAnchor resolves to the first $dynamicAnchor in the dynamic scope" - "The recursive part is valid against the root" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 250 - dynamicRef.json: "A $dynamicRef that initially resolves to a schema with a matching $dynamicAnchor resolves to the first $dynamicAnchor in the dynamic scope" - "The recursive part is not valid against the root" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties/foo/const", 97s # "error": "value does not match", 97s # "instanceLocation": "/bar/baz/foo", 97s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties/foo/const" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/bar/baz", 97s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/bar#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/properties/bar/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/extended#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties/foo/const", 97s # "error": "value does not match", 97s # "instanceLocation": "/bar/baz/foo", 97s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties/foo/const" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/bar/baz", 97s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/bar#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/properties/bar/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/extended#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 251 - dynamicRef.json: "A $dynamicRef that initially resolves to a schema without a matching $dynamicAnchor behaves like a normal $ref to $anchor" - "The recursive part doesn't need to validate against the root" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 252 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "number list with number values" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 253 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "number list with string values" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/numberList#/$defs/itemType/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/then/$ref/$ref/properties/list/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/then/$ref/$ref/properties/list/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/$ref/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/then", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/numberList#/$defs/itemType/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/then/$ref/$ref/properties/list/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/then/$ref/$ref/properties/list/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/$ref/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/then", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 254 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "string list with number values" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/stringList#/$defs/itemType/type", 97s # "error": "got number, not string", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/else/$ref/$ref/properties/list/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/else/$ref/$ref/properties/list/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/$ref/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/else", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/stringList#/$defs/itemType/type", 97s # "error": "got number, not string", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/else/$ref/$ref/properties/list/items/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/else/$ref/$ref/properties/list/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/$ref/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/else", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 255 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "string list with string values" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 256 - dynamicRef.json: "after leaving a dynamic scope, it is not used by a $dynamicRef" - "string matches /$defs/thingy, but the $dynamicRef does not stop here" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 97s # "error": "got string, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/$ref/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 97s # "error": "got string, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/$ref/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 257 - dynamicRef.json: "after leaving a dynamic scope, it is not used by a $dynamicRef" - "first_scope is not in dynamic scope for the $dynamicRef" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/$ref/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/$ref/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 258 - dynamicRef.json: "after leaving a dynamic scope, it is not used by a $dynamicRef" - "/then/$defs/thingy is the final stop for the $dynamicRef" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 259 - dynamicRef.json: "strict-tree schema, guards against misspelled properties" - "instance with misspelled field" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/children/0/daat", 97s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/children/0", 97s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties/children/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/children", 97s # "keywordLocation": "/$ref/properties/children/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/children", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/children/0/daat", 97s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/children/0", 97s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties/children/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/children", 97s # "keywordLocation": "/$ref/properties/children/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/children", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 260 - dynamicRef.json: "strict-tree schema, guards against misspelled properties" - "instance with correct field" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 261 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "incorrect parent schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 97s # "error": "object is missing property: elements", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/a", 97s # "keywordLocation": "/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 97s # "error": "object is missing property: elements", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 262 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "incorrect extended schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/required", 97s # "error": "object is missing property: a", 97s # "instanceLocation": "/elements/0", 97s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/elements/0/b", 97s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/elements/0", 97s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/elements", 97s # "keywordLocation": "/$ref/properties/elements/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/required", 97s # "error": "object is missing property: a", 97s # "instanceLocation": "/elements/0", 97s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/elements", 97s # "keywordLocation": "/$ref/properties/elements/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 263 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "correct extended schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 264 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "incorrect parent schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 97s # "error": "object is missing property: elements", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/a", 97s # "keywordLocation": "/allOf/0/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 97s # "error": "object is missing property: elements", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 265 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "incorrect extended schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/required", 97s # "error": "object is missing property: a", 97s # "instanceLocation": "/elements/0", 97s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/elements/0/b", 97s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/elements/0", 97s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/elements", 97s # "keywordLocation": "/allOf/0/$ref/properties/elements/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/required", 97s # "error": "object is missing property: a", 97s # "instanceLocation": "/elements/0", 97s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/elements", 97s # "keywordLocation": "/allOf/0/$ref/properties/elements/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 266 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "correct extended schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 267 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "incorrect parent schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 97s # "error": "object is missing property: elements", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/$ref/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/a", 97s # "keywordLocation": "/allOf/1/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 97s # "error": "object is missing property: elements", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/$ref/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 268 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "incorrect extended schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/required", 97s # "error": "object is missing property: a", 97s # "instanceLocation": "/elements/0", 97s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/elements/0/b", 97s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/elements/0", 97s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/elements", 97s # "keywordLocation": "/allOf/1/$ref/properties/elements/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/required", 97s # "error": "object is missing property: a", 97s # "instanceLocation": "/elements/0", 97s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/elements", 97s # "keywordLocation": "/allOf/1/$ref/properties/elements/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 269 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "correct extended schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 270 - dynamicRef.json: "$ref to $dynamicRef finds detached $dynamicAnchor" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 271 - dynamicRef.json: "$ref to $dynamicRef finds detached $dynamicAnchor" - "non-number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-dynamicref.json#/$defs/detached/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$dynamicRef/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-dynamicref.json#/$defs/detached/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$dynamicRef/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 272 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a true schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 273 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a false schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/false", 97s # "error": "subschema is false", 97s # "instanceLocation": "/false", 97s # "keywordLocation": "/properties/false/$dynamicRef" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/false", 97s # "error": "subschema is false", 97s # "instanceLocation": "/false", 97s # "keywordLocation": "/properties/false/$dynamicRef" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 274 - dynamicRef.json: "$dynamicRef skips over intermediate resources - direct reference" - "integer property passes" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 275 - dynamicRef.json: "$dynamicRef skips over intermediate resources - direct reference" - "string property fails" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/$defs/defaultContent/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar-item/content", 97s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/bar-item", 97s # "keywordLocation": "/properties/bar-item/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/$defs/defaultContent/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar-item/content", 97s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/bar-item", 97s # "keywordLocation": "/properties/bar-item/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 276 - enum.json: "simple enum validation" - "one of the enum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 277 - enum.json: "simple enum validation" - "something else is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 278 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 279 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 280 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 281 - enum.json: "heterogeneous enum validation" - "valid object matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 282 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 283 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 284 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 285 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 286 - enum.json: "enums in properties" - "both properties are valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 287 - enum.json: "enums in properties" - "wrong foo value" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/enum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/enum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 288 - enum.json: "enums in properties" - "wrong bar value" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/enum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/enum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 289 - enum.json: "enums in properties" - "missing optional property is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 290 - enum.json: "enums in properties" - "missing required property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 291 - enum.json: "enums in properties" - "missing all properties is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 292 - enum.json: "enum with escaped characters" - "member 1 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 293 - enum.json: "enum with escaped characters" - "member 2 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 294 - enum.json: "enum with escaped characters" - "another string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 295 - enum.json: "enum with false does not match 0" - "false is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 296 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 297 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 298 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 299 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 300 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 301 - enum.json: "enum with true does not match 1" - "true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 302 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 303 - enum.json: "enum with true does not match 1" - "float one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 304 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 305 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 306 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 307 - enum.json: "enum with 0 does not match false" - "false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 308 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 309 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 310 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 311 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 312 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 313 - enum.json: "enum with 1 does not match true" - "true is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 314 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 315 - enum.json: "enum with 1 does not match true" - "float one is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 316 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 317 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 318 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 319 - enum.json: "nul characters in strings" - "match string with nul" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 320 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 321 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 322 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than or equal to 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMaximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than or equal to 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMaximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 323 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than or equal to 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMaximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than or equal to 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMaximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 324 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 325 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 326 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than or equal to 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMinimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than or equal to 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMinimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 327 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than or equal to 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMinimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than or equal to 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMinimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 328 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 329 - format.json: "email format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 330 - format.json: "email format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 331 - format.json: "email format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 332 - format.json: "email format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 333 - format.json: "email format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 334 - format.json: "email format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 335 - format.json: "email format" - "invalid email string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 336 - format.json: "idn-email format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 337 - format.json: "idn-email format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 338 - format.json: "idn-email format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 339 - format.json: "idn-email format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 340 - format.json: "idn-email format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 341 - format.json: "idn-email format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 342 - format.json: "idn-email format" - "invalid idn-email string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 343 - format.json: "regex format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 344 - format.json: "regex format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 345 - format.json: "regex format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 346 - format.json: "regex format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 347 - format.json: "regex format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 348 - format.json: "regex format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 349 - format.json: "regex format" - "invalid regex string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 350 - format.json: "ipv4 format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 351 - format.json: "ipv4 format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 352 - format.json: "ipv4 format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 353 - format.json: "ipv4 format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 354 - format.json: "ipv4 format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 355 - format.json: "ipv4 format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 356 - format.json: "ipv4 format" - "invalid ipv4 string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 357 - format.json: "ipv6 format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 358 - format.json: "ipv6 format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 359 - format.json: "ipv6 format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 360 - format.json: "ipv6 format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 361 - format.json: "ipv6 format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 362 - format.json: "ipv6 format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 363 - format.json: "ipv6 format" - "invalid ipv6 string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 364 - format.json: "idn-hostname format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 365 - format.json: "idn-hostname format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 366 - format.json: "idn-hostname format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 367 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 368 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 369 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 370 - format.json: "idn-hostname format" - "invalid idn-hostname string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 371 - format.json: "hostname format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 372 - format.json: "hostname format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 373 - format.json: "hostname format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 374 - format.json: "hostname format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 375 - format.json: "hostname format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 376 - format.json: "hostname format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 377 - format.json: "hostname format" - "invalid hostname string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 378 - format.json: "date format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 379 - format.json: "date format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 380 - format.json: "date format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 381 - format.json: "date format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 382 - format.json: "date format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 383 - format.json: "date format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 384 - format.json: "date format" - "invalid date string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 385 - format.json: "date-time format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 386 - format.json: "date-time format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 387 - format.json: "date-time format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 388 - format.json: "date-time format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 389 - format.json: "date-time format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 390 - format.json: "date-time format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 391 - format.json: "date-time format" - "invalid date-time string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 392 - format.json: "time format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 393 - format.json: "time format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 394 - format.json: "time format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 395 - format.json: "time format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 396 - format.json: "time format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 397 - format.json: "time format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 398 - format.json: "time format" - "invalid time string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 399 - format.json: "json-pointer format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 400 - format.json: "json-pointer format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 401 - format.json: "json-pointer format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 402 - format.json: "json-pointer format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 403 - format.json: "json-pointer format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 404 - format.json: "json-pointer format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 405 - format.json: "json-pointer format" - "invalid json-pointer string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 406 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 407 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 408 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 409 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 410 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 411 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 412 - format.json: "relative-json-pointer format" - "invalid relative-json-pointer string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 413 - format.json: "iri format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 414 - format.json: "iri format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 415 - format.json: "iri format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 416 - format.json: "iri format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 417 - format.json: "iri format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 418 - format.json: "iri format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 419 - format.json: "iri format" - "invalid iri string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 420 - format.json: "iri-reference format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 421 - format.json: "iri-reference format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 422 - format.json: "iri-reference format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 423 - format.json: "iri-reference format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 424 - format.json: "iri-reference format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 425 - format.json: "iri-reference format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 426 - format.json: "iri-reference format" - "invalid iri-reference string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 427 - format.json: "uri format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 428 - format.json: "uri format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 429 - format.json: "uri format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 430 - format.json: "uri format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 431 - format.json: "uri format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 432 - format.json: "uri format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 433 - format.json: "uri format" - "invalid uri string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 434 - format.json: "uri-reference format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 435 - format.json: "uri-reference format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 436 - format.json: "uri-reference format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 437 - format.json: "uri-reference format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 438 - format.json: "uri-reference format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 439 - format.json: "uri-reference format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 440 - format.json: "uri-reference format" - "invalid uri-reference string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 441 - format.json: "uri-template format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 442 - format.json: "uri-template format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 443 - format.json: "uri-template format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 444 - format.json: "uri-template format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 445 - format.json: "uri-template format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 446 - format.json: "uri-template format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 447 - format.json: "uri-template format" - "invalid uri-template string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 448 - format.json: "uuid format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 449 - format.json: "uuid format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 450 - format.json: "uuid format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 451 - format.json: "uuid format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 452 - format.json: "uuid format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 453 - format.json: "uuid format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 454 - format.json: "uuid format" - "invalid uuid string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 455 - format.json: "duration format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 456 - format.json: "duration format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 457 - format.json: "duration format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 458 - format.json: "duration format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 459 - format.json: "duration format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 460 - format.json: "duration format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 461 - format.json: "duration format" - "invalid duration string is only an annotation by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 462 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 463 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 464 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 465 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 466 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 467 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 468 - if-then-else.json: "if and then without else" - "valid through then" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 469 - if-then-else.json: "if and then without else" - "invalid through then" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 470 - if-then-else.json: "if and then without else" - "valid when if test fails" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 471 - if-then-else.json: "if and else without then" - "valid when if test passes" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 472 - if-then-else.json: "if and else without then" - "valid through else" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 473 - if-then-else.json: "if and else without then" - "invalid through else" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 474 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 475 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 476 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 477 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 478 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 479 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 480 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 481 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 482 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 483 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 484 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 485 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 486 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 487 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 488 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "passing case" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 489 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "failing case" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/int/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/int/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/additionalProperties" 97s # }, 97s # { 97s # "error": "subschemas 0, 1 are not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/int/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/properties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 490 - items.json: "a schema given for items" - "valid items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 491 - items.json: "a schema given for items" - "wrong type of items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 492 - items.json: "a schema given for items" - "ignores non-arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 493 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 494 - items.json: "items with boolean schema (true)" - "any array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 495 - items.json: "items with boolean schema (true)" - "empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 496 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 497 - items.json: "items with boolean schema (false)" - "empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 498 - items.json: "items and subitems" - "valid items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 499 - items.json: "items and subitems" - "too many items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 500 - items.json: "items and subitems" - "too many sub-items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/items", 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0/2", 97s # "keywordLocation": "/prefixItems/0/$ref/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/prefixItems/0/$ref/items" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/items", 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0/2", 97s # "keywordLocation": "/prefixItems/0/$ref/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/prefixItems/0/$ref/items" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 501 - items.json: "items and subitems" - "wrong item" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/type", 97s # "error": "got object, not array", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/prefixItems/0/$ref/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/type", 97s # "error": "got object, not array", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/prefixItems/0/$ref/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 502 - items.json: "items and subitems" - "wrong sub-item" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/prefixItems/0/$ref/prefixItems/0/$ref/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/prefixItems", 97s # "error": "not all items are valid", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/prefixItems/0/$ref/prefixItems" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/prefixItems/0/$ref/prefixItems/0/$ref/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/prefixItems", 97s # "error": "not all items are valid", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/prefixItems/0/$ref/prefixItems" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 503 - items.json: "items and subitems" - "fewer items is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 504 - items.json: "nested items" - "valid nested array" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 505 - items.json: "nested items" - "nested array with invalid type" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/0/0/0/0", 97s # "keywordLocation": "/items/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0/0", 97s # "keywordLocation": "/items/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/0/0/0/0", 97s # "keywordLocation": "/items/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0/0", 97s # "keywordLocation": "/items/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 506 - items.json: "nested items" - "not deep enough" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/0/0/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/0/1/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/1", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/0/2/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/2", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/1/0/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/1/0", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/1/1/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/1/1", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/1/2/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/1/2", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/0/0/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 507 - items.json: "prefixItems with no additional items allowed" - "empty array" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 508 - items.json: "prefixItems with no additional items allowed" - "fewer number of items present (1)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 509 - items.json: "prefixItems with no additional items allowed" - "fewer number of items present (2)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 510 - items.json: "prefixItems with no additional items allowed" - "equal number of items present" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 511 - items.json: "prefixItems with no additional items allowed" - "additional items are not permitted" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 512 - items.json: "items does not look in applicators, valid case" - "prefixItems in allOf does not constrain items, invalid case" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 513 - items.json: "items does not look in applicators, valid case" - "prefixItems in allOf does not constrain items, valid case" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 514 - items.json: "prefixItems validation adjusts the starting index for items" - "valid items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 515 - items.json: "prefixItems validation adjusts the starting index for items" - "wrong type of second item" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 516 - items.json: "items with heterogeneous array" - "heterogeneous invalid instance" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 517 - items.json: "items with heterogeneous array" - "valid instance" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 518 - items.json: "items with null instance elements" - "allows null elements" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 519 - maxContains.json: "maxContains without contains is ignored" - "one item valid against lone maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 520 - maxContains.json: "maxContains without contains is ignored" - "two items still valid against lone maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 521 - maxContains.json: "maxContains with contains" - "empty data" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 522 - maxContains.json: "maxContains with contains" - "all elements match, valid maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 523 - maxContains.json: "maxContains with contains" - "all elements match, invalid maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 524 - maxContains.json: "maxContains with contains" - "some elements match, valid maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 525 - maxContains.json: "maxContains with contains" - "some elements match, invalid maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 526 - maxContains.json: "maxContains with contains, value with a decimal" - "one element matches, valid maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 527 - maxContains.json: "maxContains with contains, value with a decimal" - "too many elements match, invalid maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 528 - maxContains.json: "minContains < maxContains" - "actual < minContains < maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "array contains fewer than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 529 - maxContains.json: "minContains < maxContains" - "minContains < actual < maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 530 - maxContains.json: "minContains < maxContains" - "minContains < maxContains < actual" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 531 - maxItems.json: "maxItems validation" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 532 - maxItems.json: "maxItems validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 533 - maxItems.json: "maxItems validation" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 534 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 535 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 536 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 537 - maxLength.json: "maxLength validation" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 538 - maxLength.json: "maxLength validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 539 - maxLength.json: "maxLength validation" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 540 - maxLength.json: "maxLength validation" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 541 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 542 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 543 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 544 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 545 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 546 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 2 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 2 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 547 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 548 - maxProperties.json: "maxProperties validation" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 549 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 550 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 551 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 2 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 2 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 552 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 553 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 0 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 0 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 554 - maximum.json: "maximum validation" - "below the maximum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 555 - maximum.json: "maximum validation" - "boundary point is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 556 - maximum.json: "maximum validation" - "above the maximum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 557 - maximum.json: "maximum validation" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 558 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 559 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 560 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 561 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 300", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 300", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 562 - minContains.json: "minContains without contains is ignored" - "one item valid against lone minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 563 - minContains.json: "minContains without contains is ignored" - "zero items still valid against lone minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 564 - minContains.json: "minContains=1 with contains" - "empty data" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "array contains fewer than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 565 - minContains.json: "minContains=1 with contains" - "no elements match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "array contains fewer than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 566 - minContains.json: "minContains=1 with contains" - "single element matches, valid minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 567 - minContains.json: "minContains=1 with contains" - "some elements match, valid minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 568 - minContains.json: "minContains=1 with contains" - "all elements match, valid minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 569 - minContains.json: "minContains=2 with contains" - "empty data" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 570 - minContains.json: "minContains=2 with contains" - "all elements match, invalid minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 571 - minContains.json: "minContains=2 with contains" - "some elements match, invalid minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 572 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (exactly as needed)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 573 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (more than needed)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 574 - minContains.json: "minContains=2 with contains" - "some elements match, valid minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 575 - minContains.json: "minContains=2 with contains with a decimal value" - "one element matches, invalid minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 576 - minContains.json: "minContains=2 with contains with a decimal value" - "both elements match, valid minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 577 - minContains.json: "maxContains = minContains" - "empty data" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 578 - minContains.json: "maxContains = minContains" - "all elements match, invalid minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 579 - minContains.json: "maxContains = minContains" - "all elements match, invalid maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 580 - minContains.json: "maxContains = minContains" - "all elements match, valid maxContains and minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 581 - minContains.json: "maxContains < minContains" - "empty data" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "array contains fewer than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 582 - minContains.json: "maxContains < minContains" - "invalid minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 583 - minContains.json: "maxContains < minContains" - "invalid maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 584 - minContains.json: "maxContains < minContains" - "invalid maxContains and minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # }, 97s # { 97s # "error": "array contains fewer than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 585 - minContains.json: "minContains = 0" - "empty data" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 586 - minContains.json: "minContains = 0" - "minContains = 0 makes contains always pass" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 587 - minContains.json: "minContains = 0 with maxContains" - "empty data" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 588 - minContains.json: "minContains = 0 with maxContains" - "not more than maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 589 - minContains.json: "minContains = 0 with maxContains" - "too many" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxContains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 590 - minItems.json: "minItems validation" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 591 - minItems.json: "minItems validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 592 - minItems.json: "minItems validation" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 1 item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 1 item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 593 - minItems.json: "minItems validation" - "ignores non-arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 594 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 595 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 1 item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 1 item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 596 - minLength.json: "minLength validation" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 597 - minLength.json: "minLength validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 598 - minLength.json: "minLength validation" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 599 - minLength.json: "minLength validation" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 600 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 601 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 602 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 603 - minProperties.json: "minProperties validation" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 604 - minProperties.json: "minProperties validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 605 - minProperties.json: "minProperties validation" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 1 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 1 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 606 - minProperties.json: "minProperties validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 607 - minProperties.json: "minProperties validation" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 608 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 609 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 610 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 1 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 1 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 611 - minimum.json: "minimum validation" - "above the minimum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 612 - minimum.json: "minimum validation" - "boundary point is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 613 - minimum.json: "minimum validation" - "below the minimum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 614 - minimum.json: "minimum validation" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 615 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 616 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 617 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 618 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 619 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 620 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 621 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 622 - multipleOf.json: "by int" - "int by int" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 623 - multipleOf.json: "by int" - "int by int fail" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 624 - multipleOf.json: "by int" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 625 - multipleOf.json: "by number" - "zero is multiple of anything" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 626 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 627 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 1.5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 1.5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 628 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 629 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 0.0001", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 0.0001", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 630 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 0.123456789", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 0.123456789", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 631 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 632 - not.json: "not" - "allowed" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 633 - not.json: "not" - "disallowed" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 634 - not.json: "not multiple types" - "valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 635 - not.json: "not multiple types" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 636 - not.json: "not multiple types" - "other mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 637 - not.json: "not more complex schema" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 638 - not.json: "not more complex schema" - "other match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 639 - not.json: "not more complex schema" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 640 - not.json: "forbidden property" - "property present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/not" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/not" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 641 - not.json: "forbidden property" - "property absent" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 642 - not.json: "forbid everything with empty schema" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 643 - not.json: "forbid everything with empty schema" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 644 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 645 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 646 - not.json: "forbid everything with empty schema" - "null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 647 - not.json: "forbid everything with empty schema" - "object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 648 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 649 - not.json: "forbid everything with empty schema" - "array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 650 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 651 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 652 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 653 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 654 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 655 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 656 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 657 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 658 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 659 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 660 - not.json: "allow everything with boolean schema false" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 661 - not.json: "allow everything with boolean schema false" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 662 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 663 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 664 - not.json: "allow everything with boolean schema false" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 665 - not.json: "allow everything with boolean schema false" - "object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 666 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 667 - not.json: "allow everything with boolean schema false" - "array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 668 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 669 - not.json: "double negation" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 670 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 671 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 672 - oneOf.json: "oneOf" - "first oneOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 673 - oneOf.json: "oneOf" - "second oneOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 674 - oneOf.json: "oneOf" - "both oneOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 675 - oneOf.json: "oneOf" - "neither oneOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/type" 97s # }, 97s # { 97s # "error": "value is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/minimum" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/type" 97s # }, 97s # { 97s # "error": "value is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/minimum" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 676 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # }, 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 677 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 678 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 679 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1, 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 680 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 681 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 682 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/2" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/2" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 683 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 684 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 685 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 686 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/oneOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/properties" 97s # }, 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/oneOf/1/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/properties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/oneOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/properties" 97s # }, 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/oneOf/1/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/properties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 687 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 688 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 689 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/required" 97s # }, 97s # { 97s # "error": "object is missing properties: foo, baz", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/required" 97s # }, 97s # { 97s # "error": "object is missing properties: foo, baz", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 690 - oneOf.json: "oneOf with required" - "first valid - valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 691 - oneOf.json: "oneOf with required" - "second valid - valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 692 - oneOf.json: "oneOf with required" - "both valid - invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 693 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 694 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 695 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 696 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/required" 97s # }, 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/required" 97s # }, 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 697 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 698 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/oneOf/0/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/oneOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/oneOf/0/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/oneOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 699 - pattern.json: "pattern validation" - "a matching pattern is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 700 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 701 - pattern.json: "pattern validation" - "ignores booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 702 - pattern.json: "pattern validation" - "ignores integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 703 - pattern.json: "pattern validation" - "ignores floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 704 - pattern.json: "pattern validation" - "ignores objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 705 - pattern.json: "pattern validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 706 - pattern.json: "pattern validation" - "ignores null" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 707 - pattern.json: "pattern is not anchored" - "matches a substring" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 708 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 709 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 710 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.*o/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.*o/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 711 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.*o/type" 97s # }, 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foooooo", 97s # "keywordLocation": "/patternProperties/f.*o/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.*o/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 712 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 713 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 714 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 715 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 716 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 717 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 718 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/a", 97s # "keywordLocation": "/patternProperties/a*/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/a", 97s # "keywordLocation": "/patternProperties/a*/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 719 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 20", 97s # "instanceLocation": "/aaaa", 97s # "keywordLocation": "/patternProperties/aaa*/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 20", 97s # "instanceLocation": "/aaaa", 97s # "keywordLocation": "/patternProperties/aaa*/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 720 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/aaa", 97s # "keywordLocation": "/patternProperties/a*/type" 97s # }, 97s # { 97s # "error": "value is greater than 20", 97s # "instanceLocation": "/aaaa", 97s # "keywordLocation": "/patternProperties/aaa*/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/aaa", 97s # "keywordLocation": "/patternProperties/a*/type" 97s # }, 97s # { 97s # "error": "value is greater than 20", 97s # "instanceLocation": "/aaaa", 97s # "keywordLocation": "/patternProperties/aaa*/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 721 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 722 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not boolean", 97s # "instanceLocation": "/a31b", 97s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not boolean", 97s # "instanceLocation": "/a31b", 97s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 723 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 724 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/a_X_3", 97s # "keywordLocation": "/patternProperties/X_/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/a_X_3", 97s # "keywordLocation": "/patternProperties/X_/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 725 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 726 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 727 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 728 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/foobar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/foobar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 729 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 730 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 731 - prefixItems.json: "a schema given for prefixItems" - "correct types" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 732 - prefixItems.json: "a schema given for prefixItems" - "wrong types" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/prefixItems/0/type" 97s # }, 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/prefixItems/1/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/prefixItems/0/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 733 - prefixItems.json: "a schema given for prefixItems" - "incomplete array of items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 734 - prefixItems.json: "a schema given for prefixItems" - "array with additional items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 735 - prefixItems.json: "a schema given for prefixItems" - "empty array" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 736 - prefixItems.json: "a schema given for prefixItems" - "JavaScript pseudo-array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 737 - prefixItems.json: "prefixItems with boolean schemas" - "array with one item is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 738 - prefixItems.json: "prefixItems with boolean schemas" - "array with two items is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/prefixItems/1" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/prefixItems/1" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 739 - prefixItems.json: "prefixItems with boolean schemas" - "empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 740 - prefixItems.json: "additional items are allowed by default" - "only the first item is validated" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 741 - prefixItems.json: "prefixItems with null instance elements" - "allows null elements" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 742 - properties.json: "object properties validation" - "both properties present and valid is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 743 - properties.json: "object properties validation" - "one property invalid is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 744 - properties.json: "object properties validation" - "both properties invalid is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/type" 97s # }, 97s # { 97s # "error": "got array, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 745 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 746 - properties.json: "object properties validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 747 - properties.json: "object properties validation" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 748 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 749 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 3 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/maxItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 3 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/maxItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 750 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 2 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.o/minItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 2 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.o/minItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 751 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 752 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 2 items", 97s # "instanceLocation": "/fxo", 97s # "keywordLocation": "/patternProperties/f.o/minItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 2 items", 97s # "instanceLocation": "/fxo", 97s # "keywordLocation": "/patternProperties/f.o/minItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 753 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 754 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 755 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 756 - properties.json: "properties with boolean schema" - "no property present is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 757 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 758 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 759 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 760 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 761 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\tbar", 97s # "keywordLocation": "/properties/foo\tbar/type" 97s # }, 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\nbar", 97s # "keywordLocation": "/properties/foo\nbar/type" 97s # }, 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\fbar", 97s # "keywordLocation": "/properties/foo\fbar/type" 97s # }, 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\rbar", 97s # "keywordLocation": "/properties/foo\rbar/type" 97s # }, 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\"bar", 97s # "keywordLocation": "/properties/foo\"bar/type" 97s # }, 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\\bar", 97s # "keywordLocation": "/properties/foo\\bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\tbar", 97s # "keywordLocation": "/properties/foo\tbar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 762 - properties.json: "properties with null valued instance properties" - "allows null values" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 763 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 764 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 765 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 766 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/__proto__", 97s # "keywordLocation": "/properties/__proto__/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/__proto__", 97s # "keywordLocation": "/properties/__proto__/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 767 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/toString/length", 97s # "keywordLocation": "/properties/toString/properties/length/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/toString", 97s # "keywordLocation": "/properties/toString/properties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/toString/length", 97s # "keywordLocation": "/properties/toString/properties/length/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/toString", 97s # "keywordLocation": "/properties/toString/properties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 768 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not number", 97s # "instanceLocation": "/constructor", 97s # "keywordLocation": "/properties/constructor/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not number", 97s # "instanceLocation": "/constructor", 97s # "keywordLocation": "/properties/constructor/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 769 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 770 - propertyNames.json: "propertyNames validation" - "all property names valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 771 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 3", 97s # "instanceLocation": "/foobar", 97s # "keywordLocation": "/propertyNames/maxLength" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 3", 97s # "instanceLocation": "/foobar", 97s # "keywordLocation": "/propertyNames/maxLength" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 772 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 773 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 774 - propertyNames.json: "propertyNames validation" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 775 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 776 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 777 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "/aaA", 97s # "keywordLocation": "/propertyNames/pattern" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "/aaA", 97s # "keywordLocation": "/propertyNames/pattern" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 778 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 779 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 780 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 781 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/propertyNames" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/propertyNames" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 782 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 783 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 784 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/propertyNames/const" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/propertyNames/const" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 785 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 786 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 787 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 788 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/propertyNames/enum" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/propertyNames/enum" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 789 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 790 - ref.json: "root pointer ref" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 791 - ref.json: "root pointer ref" - "recursive match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 792 - ref.json: "root pointer ref" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 793 - ref.json: "root pointer ref" - "recursive mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 794 - ref.json: "relative pointer ref to object" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 795 - ref.json: "relative pointer ref to object" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/properties/foo/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/properties/foo/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 796 - ref.json: "relative pointer ref to array" - "match array" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 797 - ref.json: "relative pointer ref to array" - "mismatch array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/prefixItems/0/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/prefixItems/1/$ref/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/prefixItems/0/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/prefixItems/1/$ref/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 798 - ref.json: "escaped pointer ref" - "slash invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/slash", 97s # "keywordLocation": "/properties/slash/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/slash", 97s # "keywordLocation": "/properties/slash/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 799 - ref.json: "escaped pointer ref" - "tilde invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/tilde", 97s # "keywordLocation": "/properties/tilde/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/tilde", 97s # "keywordLocation": "/properties/tilde/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 800 - ref.json: "escaped pointer ref" - "percent invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/percent", 97s # "keywordLocation": "/properties/percent/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/percent", 97s # "keywordLocation": "/properties/percent/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 801 - ref.json: "escaped pointer ref" - "slash valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 802 - ref.json: "escaped pointer ref" - "tilde valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 803 - ref.json: "escaped pointer ref" - "percent valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 804 - ref.json: "nested refs" - "nested ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 805 - ref.json: "nested refs" - "nested ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/a/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/a/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 806 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 807 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/maxItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/maxItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 808 - ref.json: "ref applies alongside sibling keywords" - "ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/reffed/type", 97s # "error": "got string, not array", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/reffed/type", 97s # "error": "got string, not array", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 809 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 810 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/nonNegativeInteger/minimum", 97s # "error": "value is less than 0", 97s # "instanceLocation": "/minLength", 97s # "keywordLocation": "/$ref/allOf/3/$ref/properties/minLength/$ref/$ref/minimum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf/3/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 97s # "error": "subschema 3 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/nonNegativeInteger/minimum", 97s # "error": "value is less than 0", 97s # "instanceLocation": "/minLength", 97s # "keywordLocation": "/$ref/allOf/3/$ref/properties/minLength/$ref/$ref/minimum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf/3/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 97s # "error": "subschema 3 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 811 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 812 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/$ref", 97s # "keywordLocation": "/properties/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/$ref", 97s # "keywordLocation": "/properties/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 813 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 814 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/is-string/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/$ref", 97s # "keywordLocation": "/properties/$ref/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/is-string/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/$ref", 97s # "keywordLocation": "/properties/$ref/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 815 - ref.json: "$ref to boolean schema true" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 816 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/bool", 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/bool", 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 817 - ref.json: "Recursive references between schemas" - "valid tree" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 818 - ref.json: "Recursive references between schemas" - "invalid tree" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties/value/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0/subtree/nodes/0", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/nodes/0/subtree/nodes", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0/subtree", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/nodes", 97s # "keywordLocation": "/properties/nodes/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties/value/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0/subtree/nodes/0", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/nodes/0/subtree/nodes", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0/subtree", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/nodes", 97s # "keywordLocation": "/properties/nodes/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 819 - ref.json: "refs with quote" - "object with numbers is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 820 - ref.json: "refs with quote" - "object with strings is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\"bar", 97s # "keywordLocation": "/properties/foo\"bar/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\"bar", 97s # "keywordLocation": "/properties/foo\"bar/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 821 - ref.json: "ref creates new scope when adjacent to keywords" - "referenced subschema doesn't see annotations from properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/prop1", 97s # "keywordLocation": "/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/prop1", 97s # "keywordLocation": "/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 822 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 823 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 824 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 825 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 826 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 827 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 828 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 829 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 830 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 831 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 832 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 833 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 834 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id1/int.json#/maximum", 97s # "error": "value is greater than 10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id1/int.json#/maximum", 97s # "error": "value is greater than 10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 835 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 836 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id2/base.json#/$defs/bigint/maximum", 97s # "error": "value is greater than 10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id2/base.json#/$defs/bigint/maximum", 97s # "error": "value is greater than 10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 837 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 838 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 97s # "error": "value is less than 30", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/minimum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 97s # "error": "value is less than 30", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/minimum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 839 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 840 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 841 - ref.json: "URN base URI with NSS" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 842 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 843 - ref.json: "URN base URI with r-component" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 844 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 845 - ref.json: "URN base URI with q-component" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 846 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 847 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 848 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 849 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 850 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 851 - ref.json: "URN ref with nested pointer ref" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 852 - ref.json: "URN ref with nested pointer ref" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 853 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 854 - ref.json: "ref to if" - "an integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 855 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 856 - ref.json: "ref to then" - "an integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 857 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 858 - ref.json: "ref to else" - "an integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 859 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 860 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 861 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 862 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 863 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 864 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 865 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 866 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs//$defs//type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs//$defs//type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 867 - refRemote.json: "remote ref" - "remote ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 868 - refRemote.json: "remote ref" - "remote ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 869 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 870 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 871 - refRemote.json: "anchor within remote ref" - "remote anchor valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 872 - refRemote.json: "anchor within remote ref" - "remote anchor invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 873 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 874 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 875 - refRemote.json: "base URI change" - "base URI change ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 876 - refRemote.json: "base URI change" - "base URI change ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 877 - refRemote.json: "base URI change - change folder" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 878 - refRemote.json: "base URI change - change folder" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/properties/list/$ref/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/properties/list/$ref/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 879 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 880 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/#/$defs/bar/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/properties/list/$ref/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs2.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/#/$defs/bar/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/properties/list/$ref/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs2.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 881 - refRemote.json: "root ref in remote ref" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 882 - refRemote.json: "root ref in remote ref" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 883 - refRemote.json: "root ref in remote ref" - "object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf/0/type", 97s # "error": "got object, not null", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/object#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf/0/type", 97s # "error": "got object, not null", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/object#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 884 - refRemote.json: "remote ref with ref to defs" - "invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 885 - refRemote.json: "remote ref with ref to defs" - "valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 886 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 887 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 888 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/name/foo", 97s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/foo-ref-string.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/some-id#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/name/foo", 97s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/foo-ref-string.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/some-id#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 889 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 890 - refRemote.json: "remote HTTP ref with different $id" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 891 - refRemote.json: "remote HTTP ref with different $id" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 892 - refRemote.json: "remote HTTP ref with different URN $id" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 893 - refRemote.json: "remote HTTP ref with different URN $id" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 894 - refRemote.json: "remote HTTP ref with nested absolute ref" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 895 - refRemote.json: "remote HTTP ref with nested absolute ref" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 896 - refRemote.json: "$ref to $ref finds detached $anchor" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 897 - refRemote.json: "$ref to $ref finds detached $anchor" - "non-number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-ref.json#/$defs/detached/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-ref.json#/$defs/detached/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 898 - required.json: "required validation" - "present required property is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 899 - required.json: "required validation" - "non-present required property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 900 - required.json: "required validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 901 - required.json: "required validation" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 902 - required.json: "required validation" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 903 - required.json: "required default validation" - "not required by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 904 - required.json: "required with empty array" - "property not required" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 905 - required.json: "required with escaped characters" - "object with all properties present is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 906 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 907 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 908 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 909 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, toString, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, toString, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 910 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: toString, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: toString, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 911 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 912 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, toString", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, toString", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 913 - required.json: "required properties whose names are Javascript object property names" - "all present" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 914 - type.json: "integer type matches integers" - "an integer is an integer" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 915 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 916 - type.json: "integer type matches integers" - "a float is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 917 - type.json: "integer type matches integers" - "a string is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 918 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 919 - type.json: "integer type matches integers" - "an object is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 920 - type.json: "integer type matches integers" - "an array is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 921 - type.json: "integer type matches integers" - "a boolean is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 922 - type.json: "integer type matches integers" - "null is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 923 - type.json: "number type matches numbers" - "an integer is a number" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 924 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 925 - type.json: "number type matches numbers" - "a float is a number" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 926 - type.json: "number type matches numbers" - "a string is not a number" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 927 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 928 - type.json: "number type matches numbers" - "an object is not a number" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 929 - type.json: "number type matches numbers" - "an array is not a number" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 930 - type.json: "number type matches numbers" - "a boolean is not a number" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 931 - type.json: "number type matches numbers" - "null is not a number" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 932 - type.json: "string type matches strings" - "1 is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 933 - type.json: "string type matches strings" - "a float is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 934 - type.json: "string type matches strings" - "a string is a string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 935 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 936 - type.json: "string type matches strings" - "an empty string is still a string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 937 - type.json: "string type matches strings" - "an object is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 938 - type.json: "string type matches strings" - "an array is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 939 - type.json: "string type matches strings" - "a boolean is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 940 - type.json: "string type matches strings" - "null is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 941 - type.json: "object type matches objects" - "an integer is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 942 - type.json: "object type matches objects" - "a float is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 943 - type.json: "object type matches objects" - "a string is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 944 - type.json: "object type matches objects" - "an object is an object" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 945 - type.json: "object type matches objects" - "an array is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 946 - type.json: "object type matches objects" - "a boolean is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 947 - type.json: "object type matches objects" - "null is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 948 - type.json: "array type matches arrays" - "an integer is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 949 - type.json: "array type matches arrays" - "a float is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 950 - type.json: "array type matches arrays" - "a string is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 951 - type.json: "array type matches arrays" - "an object is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 952 - type.json: "array type matches arrays" - "an array is an array" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 953 - type.json: "array type matches arrays" - "a boolean is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 954 - type.json: "array type matches arrays" - "null is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 955 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 956 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 957 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 958 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 959 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 960 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 961 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 962 - type.json: "boolean type matches booleans" - "true is a boolean" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 963 - type.json: "boolean type matches booleans" - "false is a boolean" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 964 - type.json: "boolean type matches booleans" - "null is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 965 - type.json: "null type matches only the null object" - "an integer is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 966 - type.json: "null type matches only the null object" - "a float is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 967 - type.json: "null type matches only the null object" - "zero is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 968 - type.json: "null type matches only the null object" - "a string is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 969 - type.json: "null type matches only the null object" - "an empty string is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 970 - type.json: "null type matches only the null object" - "an object is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 971 - type.json: "null type matches only the null object" - "an array is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 972 - type.json: "null type matches only the null object" - "true is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 973 - type.json: "null type matches only the null object" - "false is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 974 - type.json: "null type matches only the null object" - "null is null" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 975 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 976 - type.json: "multiple types can be specified in an array" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 977 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 978 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 979 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 980 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 981 - type.json: "multiple types can be specified in an array" - "null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 982 - type.json: "type as array with one item" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 983 - type.json: "type as array with one item" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not one of string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not one of string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 984 - type.json: "type: array or object" - "array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 985 - type.json: "type: array or object" - "object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 986 - type.json: "type: array or object" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 987 - type.json: "type: array or object" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 988 - type.json: "type: array or object" - "null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 989 - type.json: "type: array, object or null" - "array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 990 - type.json: "type: array, object or null" - "object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 991 - type.json: "type: array, object or null" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 992 - type.json: "type: array, object or null" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not one of array, object, null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not one of array, object, null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 993 - type.json: "type: array, object or null" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not one of array, object, null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not one of array, object, null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 994 - unevaluatedItems.json: "unevaluatedItems true" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 995 - unevaluatedItems.json: "unevaluatedItems true" - "with unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 996 - unevaluatedItems.json: "unevaluatedItems false" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 997 - unevaluatedItems.json: "unevaluatedItems false" - "with unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 998 - unevaluatedItems.json: "unevaluatedItems as schema" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 999 - unevaluatedItems.json: "unevaluatedItems as schema" - "with valid unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1000 - unevaluatedItems.json: "unevaluatedItems as schema" - "with invalid unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 98s # { 98s # "error": "got integer, not string", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems/type" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1001 - unevaluatedItems.json: "unevaluatedItems with uniform items" - "unevaluatedItems doesn't apply" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1002 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with no unevaluated items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1003 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1004 - unevaluatedItems.json: "unevaluatedItems with items and prefixItems" - "unevaluatedItems doesn't apply" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1005 - unevaluatedItems.json: "unevaluatedItems with items" - "valid under items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1006 - unevaluatedItems.json: "unevaluatedItems with items" - "invalid under items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not number", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/items/type" 98s # }, 98s # { 98s # "error": "got string, not number", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/items/type" 98s # }, 98s # { 98s # "error": "got string, not number", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/items/type" 98s # }, 98s # { 98s # "error": "subschema is not valid against all items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/items" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not number", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/items/type" 98s # }, 98s # { 98s # "error": "got string, not number", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/items/type" 98s # }, 98s # { 98s # "error": "got string, not number", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/items/type" 98s # }, 98s # { 98s # "error": "subschema is not valid against all items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/items" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1007 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with no unevaluated items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1008 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1009 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with only (valid) additional items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1010 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with no additional items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1011 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with invalid additional item" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not boolean", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems/type" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not boolean", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems/type" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1012 - unevaluatedItems.json: "unevaluatedItems with nested prefixItems and items" - "with no additional items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1013 - unevaluatedItems.json: "unevaluatedItems with nested prefixItems and items" - "with additional items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1014 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with no additional items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1015 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with additional items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1016 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has no unevaluated items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1017 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1018 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has no unevaluated items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1019 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/3", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/3", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1020 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with no unevaluated items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1021 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1022 - unevaluatedItems.json: "unevaluatedItems with not" - "with unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1023 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has no unevaluated items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1024 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/3", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/3", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1025 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has no unevaluated items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1026 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/4", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/4", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1027 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with no unevaluated items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1028 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1029 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with no unevaluated items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1030 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1031 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with no unevaluated items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1032 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1033 - unevaluatedItems.json: "unevaluatedItems with $dynamicRef" - "with no unevaluated items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1034 - unevaluatedItems.json: "unevaluatedItems with $dynamicRef" - "with unevaluated items" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/$ref/unevaluatedItems" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/$ref/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/$ref/unevaluatedItems" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/$ref/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1035 - unevaluatedItems.json: "unevaluatedItems can't see inside cousins" - "always fails" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/allOf/1/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/1/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema 1 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/allOf/1/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/1/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema 1 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1036 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "no extra items" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1037 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "uncle keyword evaluation is not significant" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/foo/1", 98s # "keywordLocation": "/properties/foo/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/properties/foo/unevaluatedItems" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/foo/1", 98s # "keywordLocation": "/properties/foo/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/properties/foo/unevaluatedItems" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1038 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "second item is evaluated by contains" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1039 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "contains fails, second item is not evaluated" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "got integer, not string", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/contains/type" 98s # }, 98s # { 98s # "error": "got integer, not string", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/contains/type" 98s # }, 98s # { 98s # "error": "subschema is not valid against any item", 98s # "instanceLocation": "", 98s # "keywordLocation": "/contains" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "got integer, not string", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/contains/type" 98s # }, 98s # { 98s # "error": "got integer, not string", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/contains/type" 98s # }, 98s # { 98s # "error": "subschema is not valid against any item", 98s # "instanceLocation": "", 98s # "keywordLocation": "/contains" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1040 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "contains passes, second item is not evaluated" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1041 - unevaluatedItems.json: "unevaluatedItems depends on multiple nested contains" - "5 not evaluated, passes unevaluatedItems" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1042 - unevaluatedItems.json: "unevaluatedItems depends on multiple nested contains" - "7 not evaluated, fails unevaluatedItems" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "value is not a multiple of 5", 98s # "instanceLocation": "/3", 98s # "keywordLocation": "/unevaluatedItems/multipleOf" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "value is not a multiple of 5", 98s # "instanceLocation": "/3", 98s # "keywordLocation": "/unevaluatedItems/multipleOf" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1043 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "empty array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1044 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only a's are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1045 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "a's and b's are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1046 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "a's, b's and c's are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1047 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only b's are invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1048 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only c's are invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1049 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only b's and c's are invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/3", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/4", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/1", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/3", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/4", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1050 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only a's and c's are invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/4", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/4", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1051 - unevaluatedItems.json: "non-array instances are valid" - "ignores booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1052 - unevaluatedItems.json: "non-array instances are valid" - "ignores integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1053 - unevaluatedItems.json: "non-array instances are valid" - "ignores floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1054 - unevaluatedItems.json: "non-array instances are valid" - "ignores objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1055 - unevaluatedItems.json: "non-array instances are valid" - "ignores strings" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1056 - unevaluatedItems.json: "non-array instances are valid" - "ignores null" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1057 - unevaluatedItems.json: "unevaluatedItems with null instance elements" - "allows null elements" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1058 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "valid in case if is evaluated" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1059 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "invalid in case if is evaluated" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/0", 98s # "keywordLocation": "/unevaluatedItems" 98s # }, 98s # { 98s # "error": "subschema is not valid against all additional items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 1060 - unevaluatedProperties.json: "unevaluatedProperties true" - "with no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1061 - unevaluatedProperties.json: "unevaluatedProperties true" - "with unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1062 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1063 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with valid unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1064 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with invalid unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "length is less than 3", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties/minLength" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "length is less than 3", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties/minLength" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1065 - unevaluatedProperties.json: "unevaluatedProperties false" - "with no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1066 - unevaluatedProperties.json: "unevaluatedProperties false" - "with unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1067 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1068 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1069 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1070 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1071 - unevaluatedProperties.json: "unevaluatedProperties with adjacent bool additionalProperties" - "with no additional properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1072 - unevaluatedProperties.json: "unevaluatedProperties with adjacent bool additionalProperties" - "with additional properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1073 - unevaluatedProperties.json: "unevaluatedProperties with adjacent non-bool additionalProperties" - "with only valid additional properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1074 - unevaluatedProperties.json: "unevaluatedProperties with adjacent non-bool additionalProperties" - "with invalid additional properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "got integer, not string", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/additionalProperties/type" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "got integer, not string", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/additionalProperties/type" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1075 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with no additional properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1076 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with additional properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1077 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with no additional properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1078 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with additional properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1079 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with no additional properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1080 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with additional properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1081 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with no nested unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1082 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with nested unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1083 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1084 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1085 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1086 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/quux", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/quux", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1087 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1088 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/quux", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/quux", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1089 - unevaluatedProperties.json: "unevaluatedProperties with not" - "with unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1090 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1091 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1092 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1093 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1094 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has no unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1095 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1096 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1097 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1098 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1099 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1100 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has no unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1101 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1102 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1103 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1104 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1105 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1106 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1107 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1108 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1109 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1110 - unevaluatedProperties.json: "unevaluatedProperties with $dynamicRef" - "with no unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1111 - unevaluatedProperties.json: "unevaluatedProperties with $dynamicRef" - "with unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/$ref/unevaluatedProperties" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/$ref/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/baz", 98s # "keywordLocation": "/$ref/unevaluatedProperties" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/$ref/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1112 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins" - "always fails" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 1 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 1 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1113 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins (reverse order)" - "always fails" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1114 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with no nested unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1115 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with nested unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1116 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with no nested unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1117 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with nested unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1118 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with no nested unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1119 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with nested unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1120 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with no nested unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1121 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with nested unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1122 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with no nested unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 1 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 1 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1123 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with nested unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 1 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 1 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1124 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with no nested unevaluated properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1125 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with nested unevaluated properties" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 1 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/1/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 1 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1126 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "no extra properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1127 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "uncle keyword evaluation is not significant" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo/faz", 98s # "keywordLocation": "/properties/foo/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/properties/foo/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo/faz", 98s # "keywordLocation": "/properties/foo/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/properties/foo/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1128 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "base case: both properties present" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1129 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, bar is missing" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1130 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, foo is missing" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "subschema 0 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1131 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "base case: both properties present" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1132 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, bar is missing" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1133 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, foo is missing" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1134 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Empty is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1135 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Single is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1136 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 1st level is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/y", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/y", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1137 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Nested is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1138 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 2nd level is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/unevaluatedProperties", 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/x/y", 98s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/unevaluatedProperties", 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "/x", 98s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/unevaluatedProperties", 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/x/y", 98s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/unevaluatedProperties", 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "/x", 98s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1139 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Deep nested is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1140 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 3rd level is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/unevaluatedProperties", 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/x/x/y", 98s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/unevaluatedProperties", 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "/x/x", 98s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/properties", 98s # "error": "not all properties are valid", 98s # "instanceLocation": "/x", 98s # "keywordLocation": "/properties/x/$ref/properties" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/unevaluatedProperties", 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/x/x/y", 98s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/unevaluatedProperties", 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "/x/x", 98s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/properties", 98s # "error": "not all properties are valid", 98s # "instanceLocation": "/x", 98s # "keywordLocation": "/properties/x/$ref/properties" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1141 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "Empty is invalid (no x or y)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/required", 98s # "error": "object is missing property: x", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 98s # }, 98s # { 98s # "error": "object is missing property: y", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf" 98s # }, 98s # { 98s # "error": "subschema 2 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/required", 98s # "error": "object is missing property: x", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 98s # }, 98s # { 98s # "error": "object is missing property: y", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf" 98s # }, 98s # { 98s # "error": "subschema 2 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1142 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b are invalid (no x or y)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/required", 98s # "error": "object is missing property: x", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 98s # }, 98s # { 98s # "error": "object is missing property: y", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf" 98s # }, 98s # { 98s # "error": "subschema 2 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/required", 98s # "error": "object is missing property: x", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 98s # }, 98s # { 98s # "error": "object is missing property: y", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf" 98s # }, 98s # { 98s # "error": "subschema 2 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1143 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "x and y are invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf" 98s # }, 98s # { 98s # "error": "subschema 2 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/x", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/y", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf" 98s # }, 98s # { 98s # "error": "subschema 2 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/x", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/y", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1144 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and x are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1145 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and y are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1146 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1147 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and y are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1148 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x and y are invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf" 98s # }, 98s # { 98s # "error": "subschema 2 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/x", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/y", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf/2/oneOf" 98s # }, 98s # { 98s # "error": "subschema 2 is not valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/allOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/x", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/y", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1149 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "Empty is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 98s # "error": "object is missing property: c", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 98s # "error": "object is missing property: d", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 98s # "error": "object is missing property: b", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 98s # "error": "object is missing property: xx", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 98s # "error": "object is missing property: all", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 98s # "error": "object is missing property: c", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 98s # "error": "object is missing property: d", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 98s # "error": "object is missing property: b", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 98s # "error": "object is missing property: xx", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 98s # "error": "object is missing property: all", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1150 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1151 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1152 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1153 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "d is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1154 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + b is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1155 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + c is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1156 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + d is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1157 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + c is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/b", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/c", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/b", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/c", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1158 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + d is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/b", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/d", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/b", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/d", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1159 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c + d is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 98s # "error": "object is missing property: b", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 98s # "error": "object is missing property: xx", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 98s # "error": "object is missing property: all", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/c", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/d", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 98s # "error": "object is missing property: b", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 98s # "error": "object is missing property: xx", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 98s # "error": "object is missing property: all", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/c", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/d", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1160 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1161 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foox is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1162 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foo is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1163 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + a is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1164 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + b is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "multiple subschemas are valid: 1, 2", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/b", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/xx", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "multiple subschemas are valid: 1, 2", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/b", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/xx", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1165 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + c is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "multiple subschemas are valid: 0, 2", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/c", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/xx", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "multiple subschemas are valid: 0, 2", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/c", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/xx", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1166 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + d is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "multiple subschemas are valid: 0, 2", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/d", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/xx", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 98s # "error": "multiple subschemas are valid: 0, 2", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/0/$ref/oneOf" 98s # }, 98s # { 98s # "error": "object is missing property: a", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf/1/required" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/d", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/xx", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1167 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1168 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + foo is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1169 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + a is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "multiple subschemas are valid: 0, 1", 98s # "instanceLocation": "", 98s # "keywordLocation": "/oneOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1170 - unevaluatedProperties.json: "non-object instances are valid" - "ignores booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1171 - unevaluatedProperties.json: "non-object instances are valid" - "ignores integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1172 - unevaluatedProperties.json: "non-object instances are valid" - "ignores floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1173 - unevaluatedProperties.json: "non-object instances are valid" - "ignores arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1174 - unevaluatedProperties.json: "non-object instances are valid" - "ignores strings" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1175 - unevaluatedProperties.json: "non-object instances are valid" - "ignores null" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1176 - unevaluatedProperties.json: "unevaluatedProperties with null valued instance properties" - "allows null valued properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1177 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "allows only number properties" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1178 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "string property is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not number", 98s # "instanceLocation": "/a", 98s # "keywordLocation": "/unevaluatedProperties/type" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not number", 98s # "instanceLocation": "/a", 98s # "keywordLocation": "/unevaluatedProperties/type" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1179 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "valid in case if is evaluated" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1180 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "invalid in case if is evaluated" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1181 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't consider dependentSchemas" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/foo", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1182 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't see bar when foo2 is absent" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/unevaluatedProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/unevaluatedProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1183 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties sees bar when foo2 is present" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s # 98s ok 1184 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1185 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1186 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 2 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 2 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1187 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1188 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1189 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1190 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1191 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 2 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 2 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1192 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1193 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1194 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1195 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1196 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1197 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1198 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1199 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 2 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 2 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1200 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1201 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1202 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1203 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1204 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1205 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1206 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1207 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 4 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 4 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1208 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1209 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1210 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1211 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1212 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1213 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1214 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1215 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1216 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1217 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1218 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 2 and 3 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 2 and 3 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1219 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 2 and 3 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 2 and 3 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1220 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1221 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1222 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1223 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "items at indices 0 and 1 are not unique", 98s # "instanceLocation": "", 98s # "keywordLocation": "/uniqueItems" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1224 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/items" 98s # }, 98s # { 98s # "error": "subschema is not valid against all items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/items" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/items" 98s # }, 98s # { 98s # "error": "subschema is not valid against all items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/items" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1225 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1226 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1227 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1228 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1229 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1230 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1231 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1232 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1233 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1234 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1235 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1236 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1237 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1238 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1239 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1240 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1241 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1242 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1243 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1244 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1245 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1246 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1247 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1248 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1249 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1250 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1251 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1252 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/items" 98s # }, 98s # { 98s # "error": "subschema is not valid against all items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/items" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional item not permitted", 98s # "instanceLocation": "/2", 98s # "keywordLocation": "/items" 98s # }, 98s # { 98s # "error": "subschema is not valid against all items", 98s # "instanceLocation": "", 98s # "keywordLocation": "/items" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 1253 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "applicator vocabulary still works" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 98s # "error": "property not permitted", 98s # "instanceLocation": "/badProperty", 98s # "keywordLocation": "/properties/badProperty" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 98s # "error": "property not permitted", 98s # "instanceLocation": "/badProperty", 98s # "keywordLocation": "/properties/badProperty" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1254 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: valid number" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1255 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: invalid number, but it still validates" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1256 - vocabulary.json: "ignore unrecognized optional vocabulary" - "string value" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not number", 98s # "instanceLocation": "", 98s # "keywordLocation": "/type" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not number", 98s # "instanceLocation": "", 98s # "keywordLocation": "/type" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1257 - vocabulary.json: "ignore unrecognized optional vocabulary" - "number value" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s # 98s ok 1258 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "exact match to enum, and type matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1259 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "in implementations that strip $anchor, this may match either $def" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 98s # "error": "value does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/$ref/enum" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 98s # "error": "got object, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/1/$ref/type" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 98s # "error": "value does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/$ref/enum" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 98s # "error": "got object, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/1/$ref/type" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1260 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "match $ref to $anchor" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1261 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "no match on enum or $ref to $anchor" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 98s # "error": "value does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/$ref/enum" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 98s # "error": "got integer, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/1/$ref/type" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 98s # "error": "value does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/$ref/enum" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 98s # "error": "got integer, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/1/$ref/type" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 1262 - optional/bignum.json: "integer" - "a bignum is an integer" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1263 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1264 - optional/bignum.json: "number" - "a bignum is a number" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1265 - optional/bignum.json: "number" - "a negative bignum is a number" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1266 - optional/bignum.json: "string" - "a bignum is not a string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "got integer, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/type" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "got integer, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/type" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1267 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1268 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 98s # "instanceLocation": "", 98s # "keywordLocation": "/exclusiveMaximum" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 98s # "instanceLocation": "", 98s # "keywordLocation": "/exclusiveMaximum" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1269 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1270 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 98s # "instanceLocation": "", 98s # "keywordLocation": "/exclusiveMinimum" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 98s # "instanceLocation": "", 98s # "keywordLocation": "/exclusiveMinimum" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 1271 - optional/cross-draft.json: "refs to historic drafts are processed as historic drafts" - "first item not a string is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s # 98s ok 1272 - optional/dependencies-compatibility.json: "single dependency" - "neither" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1273 - optional/dependencies-compatibility.json: "single dependency" - "nondependant" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1274 - optional/dependencies-compatibility.json: "single dependency" - "with dependency" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1275 - optional/dependencies-compatibility.json: "single dependency" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "bar": [ 98s # "foo" 98s # ] 98s # } 98s # } 98s # data: { 98s # "bar": 2 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1276 - optional/dependencies-compatibility.json: "single dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1277 - optional/dependencies-compatibility.json: "single dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1278 - optional/dependencies-compatibility.json: "single dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1279 - optional/dependencies-compatibility.json: "empty dependents" - "empty object" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1280 - optional/dependencies-compatibility.json: "empty dependents" - "object with one property" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1281 - optional/dependencies-compatibility.json: "empty dependents" - "non-object is valid" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1282 - optional/dependencies-compatibility.json: "multiple dependents required" - "neither" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1283 - optional/dependencies-compatibility.json: "multiple dependents required" - "nondependants" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1284 - optional/dependencies-compatibility.json: "multiple dependents required" - "with dependencies" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1285 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "quux": [ 98s # "foo", 98s # "bar" 98s # ] 98s # } 98s # } 98s # data: { 98s # "foo": 1, 98s # "quux": 2 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1286 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing other dependency" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "quux": [ 98s # "foo", 98s # "bar" 98s # ] 98s # } 98s # } 98s # data: { 98s # "bar": 1, 98s # "quux": 2 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1287 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing both dependencies" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "quux": [ 98s # "foo", 98s # "bar" 98s # ] 98s # } 98s # } 98s # data: { 98s # "quux": 1 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1288 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1289 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1290 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF missing dependent" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "foo\nbar": [ 98s # "foo\rbar" 98s # ], 98s # "foo\"bar": [ 98s # "foo'bar" 98s # ] 98s # } 98s # } 98s # data: { 98s # "foo": 2, 98s # "foo\nbar": 1 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1291 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "foo\nbar": [ 98s # "foo\rbar" 98s # ], 98s # "foo\"bar": [ 98s # "foo'bar" 98s # ] 98s # } 98s # } 98s # data: { 98s # "foo\"bar": 2 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1292 - optional/dependencies-compatibility.json: "single schema dependency" - "valid" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1293 - optional/dependencies-compatibility.json: "single schema dependency" - "no dependency" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1294 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "bar": { 98s # "properties": { 98s # "bar": { 98s # "type": "integer" 98s # }, 98s # "foo": { 98s # "type": "integer" 98s # } 98s # } 98s # } 98s # } 98s # } 98s # data: { 98s # "bar": 2, 98s # "foo": "quux" 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1295 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type other" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "bar": { 98s # "properties": { 98s # "bar": { 98s # "type": "integer" 98s # }, 98s # "foo": { 98s # "type": "integer" 98s # } 98s # } 98s # } 98s # } 98s # } 98s # data: { 98s # "bar": "quux", 98s # "foo": 2 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1296 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type both" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "bar": { 98s # "properties": { 98s # "bar": { 98s # "type": "integer" 98s # }, 98s # "foo": { 98s # "type": "integer" 98s # } 98s # } 98s # } 98s # } 98s # } 98s # data: { 98s # "bar": "quux", 98s # "foo": "quux" 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1297 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1298 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1299 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1300 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema true is valid" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1301 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema false is invalid" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "bar": false, 98s # "foo": true 98s # } 98s # } 98s # data: { 98s # "bar": 2 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1302 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with both properties is invalid" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "bar": false, 98s # "foo": true 98s # } 98s # } 98s # data: { 98s # "bar": 2, 98s # "foo": 1 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1303 - optional/dependencies-compatibility.json: "boolean subschemas" - "empty object is valid" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1304 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1305 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "foo\tbar": { 98s # "minProperties": 4 98s # }, 98s # "foo'bar": { 98s # "required": [ 98s # "foo\"bar" 98s # ] 98s # } 98s # } 98s # } 98s # data: { 98s # "foo'bar": { 98s # "foo\"bar": 1 98s # } 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1306 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "foo\tbar": { 98s # "minProperties": 4 98s # }, 98s # "foo'bar": { 98s # "required": [ 98s # "foo\"bar" 98s # ] 98s # } 98s # } 98s # } 98s # data: { 98s # "a": 2, 98s # "foo\tbar": 1 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1307 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "dependencies": { 98s # "foo\tbar": { 98s # "minProperties": 4 98s # }, 98s # "foo'bar": { 98s # "required": [ 98s # "foo\"bar" 98s # ] 98s # } 98s # } 98s # } 98s # data: { 98s # "foo'bar": 1 98s # } 98s # result: 1 98s 1..1 98s } 98s # 98s ok 1308 - optional/dynamicRef.json: "$dynamicRef skips over intermediate resources - pointer reference across resource boundary" - "integer property passes" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1309 - optional/dynamicRef.json: "$dynamicRef skips over intermediate resources - pointer reference across resource boundary" - "string property fails" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/$defs/defaultContent/type", 98s # "error": "got string, not integer", 98s # "instanceLocation": "/bar-item/content", 98s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/properties", 98s # "error": "not all properties are valid", 98s # "instanceLocation": "/bar-item", 98s # "keywordLocation": "/properties/bar-item/$ref/properties" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main#/properties", 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/$defs/defaultContent/type", 98s # "error": "got string, not integer", 98s # "instanceLocation": "/bar-item/content", 98s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/properties", 98s # "error": "not all properties are valid", 98s # "instanceLocation": "/bar-item", 98s # "keywordLocation": "/properties/bar-item/$ref/properties" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main#/properties", 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/properties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 1310 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1311 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1312 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1313 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1314 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1315 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1316 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1317 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1318 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1319 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "pattern": "^\\d$", 98s # "type": "string" 98s # } 98s # data: "߀" 98s # result: 1 98s 1..1 98s } 98s ok 1320 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO (as \u escape) does not match" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "pattern": "^\\d$", 98s # "type": "string" 98s # } 98s # data: "߀" 98s # result: 1 98s 1..1 98s } 98s ok 1321 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 1322 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected true; got false 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "pattern": "^\\D$", 98s # "type": "string" 98s # } 98s # data: "߀" 98s # result: 0 98s 1..1 98s } 98s ok 1323 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO (as \u escape) matches" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected true; got false 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "pattern": "^\\D$", 98s # "type": "string" 98s # } 98s # data: "߀" 98s # result: 0 98s 1..1 98s } 98s ok 1324 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 1325 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "latin-1 e-acute does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "pattern": "^\\w$", 98s # "type": "string" 98s # } 98s # data: "é" 98s # result: 1 98s 1..1 98s } 98s ok 1326 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 1327 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "latin-1 e-acute matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected true; got false 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "pattern": "^\\W$", 98s # "type": "string" 98s # } 98s # data: "é" 98s # result: 0 98s 1..1 98s } 98s ok 1328 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1329 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1330 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1331 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1332 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1333 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected true; got false 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "pattern": "^\\s$", 98s # "type": "string" 98s # } 98s # data: "" 98s # result: 0 98s 1..1 98s } 98s ok 1334 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1335 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1336 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1337 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1338 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1339 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1340 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1341 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1342 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1343 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1344 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "pattern": "^\\S$", 98s # "type": "string" 98s # } 98s # data: "" 98s # result: 1 98s 1..1 98s } 98s ok 1345 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1346 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1347 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1348 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1349 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1350 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1351 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1352 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1353 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1354 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1355 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "pattern": "\\wcole" 98s # } 98s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 98s # result: 1 98s 1..1 98s } 98s ok 1356 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "pattern": "\\wcole" 98s # } 98s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 98s # result: 1 98s 1..1 98s } 98s ok 1357 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1358 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1359 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1360 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1361 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1362 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1363 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "pattern": "^\\d+$" 98s # } 98s # data: "৪২" 98s # result: 1 98s 1..1 98s } 98s ok 1364 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1365 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1366 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1367 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1368 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1369 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1370 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/L'ÉCOLE", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/L'ÉCOLE", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1371 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1372 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "additionalProperties": false, 98s # "patternProperties": { 98s # "\\wcole": true 98s # }, 98s # "type": "object" 98s # } 98s # data: { 98s # "l'école": "pas de vraie vie" 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1373 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "additionalProperties": false, 98s # "patternProperties": { 98s # "\\wcole": true 98s # }, 98s # "type": "object" 98s # } 98s # data: { 98s # "l'école": "pas de vraie vie" 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1374 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/L'ÉCOLE", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/L'ÉCOLE", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1375 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/l'école", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/l'école", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1376 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/l'école", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/l'école", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1377 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1378 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1379 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/-%#", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/-%#", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1380 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "additionalProperties": false, 98s # "patternProperties": { 98s # "^\\d+$": true 98s # }, 98s # "type": "object" 98s # } 98s # data: { 98s # "৪২": "khajit has wares if you have coin" 98s # } 98s # result: 1 98s 1..1 98s } 98s ok 1381 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1382 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/-%#", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "additional property not permitted", 98s # "instanceLocation": "/-%#", 98s # "keywordLocation": "/additionalProperties" 98s # }, 98s # { 98s # "error": "not all additional properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/additionalProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1383 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s # 98s ok 1384 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s # 98s ok 1385 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: valid string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1386 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: invalid string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 98s # "error": "not a valid ipv4", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 98s # "error": "not a valid ipv4", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1387 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: valid string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1388 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: invalid string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 98s # "error": "not a valid ipv4", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 98s # "error": "not a valid ipv4", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 1389 - optional/id.json: "$id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1390 - optional/id.json: "$id inside an enum is not a real identifier" - "match $ref to $id" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1391 - optional/id.json: "$id inside an enum is not a real identifier" - "no match on enum or $ref to $id" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 98s # "error": "value does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/$ref/enum" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/id/my_identifier.json#/type", 98s # "error": "got integer, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/1/$ref/type" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 98s # "error": "value does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/$ref/enum" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/id/my_identifier.json#/type", 98s # "error": "got integer, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/1/$ref/type" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 1392 - optional/no-schema.json: "validation without $schema" - "a 3-character string is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1393 - optional/no-schema.json: "validation without $schema" - "a 1-character string is not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "length is less than 2", 98s # "instanceLocation": "", 98s # "keywordLocation": "/minLength" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "length is less than 2", 98s # "instanceLocation": "", 98s # "keywordLocation": "/minLength" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1394 - optional/no-schema.json: "validation without $schema" - "a non-string is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s # 98s ok 1395 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1396 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1397 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1398 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1399 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1400 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1401 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "pattern does not match", 98s # "instanceLocation": "", 98s # "keywordLocation": "/pattern" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1402 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1403 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1404 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1405 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not integer", 98s # "instanceLocation": "/🐲", 98s # "keywordLocation": "/patternProperties/^🐲*$/type" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/patternProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not integer", 98s # "instanceLocation": "/🐲", 98s # "keywordLocation": "/patternProperties/^🐲*$/type" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/patternProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1406 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not integer", 98s # "instanceLocation": "/🐲🐲", 98s # "keywordLocation": "/patternProperties/^🐲*$/type" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/patternProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "got string, not integer", 98s # "instanceLocation": "/🐲🐲", 98s # "keywordLocation": "/patternProperties/^🐲*$/type" 98s # }, 98s # { 98s # "error": "not all properties are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/patternProperties" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 1407 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "match" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/properties/bar/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/properties/bar/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected true; got false 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "properties": { 98s # "bar": { 98s # "$ref": "#/unknown-keyword" 98s # } 98s # }, 98s # "unknown-keyword": { 98s # "type": "integer" 98s # } 98s # } 98s # data: { 98s # "bar": 3 98s # } 98s # result: null 98s 1..1 98s } 98s ok 1408 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "mismatch" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/properties/bar/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/properties/bar/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 1409 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "match" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/properties/bar/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/properties/bar/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected true; got false 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "properties": { 98s # "bar": { 98s # "$ref": "#/properties/foo/unknown-keyword" 98s # }, 98s # "foo": { 98s # "unknown-keyword": { 98s # "type": "integer" 98s # } 98s # } 98s # } 98s # } 98s # data: { 98s # "bar": 3 98s # } 98s # result: null 98s 1..1 98s } 98s ok 1410 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "mismatch" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/properties/bar/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 98s # "instanceLocation": "/bar", 98s # "keywordLocation": "/properties/bar/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 1411 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "match" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "/base#/$ref", 98s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 98s # "instanceLocation": "", 98s # "keywordLocation": "/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "/base#/$ref", 98s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 98s # "instanceLocation": "", 98s # "keywordLocation": "/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12.t line 53. 98s # expected true; got false 98s # schema: { 98s # "$id": "/base", 98s # "$ref": "#/examples/0", 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "examples": [ 98s # { 98s # "type": "string" 98s # } 98s # ] 98s # } 98s # data: "a string" 98s # result: null 98s 1..1 98s } 98s ok 1412 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "mismatch" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "/base#/$ref", 98s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 98s # "instanceLocation": "", 98s # "keywordLocation": "/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "/base#/$ref", 98s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 98s # "instanceLocation": "", 98s # "keywordLocation": "/$ref" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s # 98s ok 1413 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 1414 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 98s # "error": "subschema is valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/$ref/not" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 98s # "error": "subschema is valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/1/$ref/not" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 98s # "error": "got null, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/2/$ref/type" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 98s # "error": "subschema is valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/$ref/not" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 98s # "error": "subschema is valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/1/$ref/not" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 98s # "error": "got null, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/2/$ref/type" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 1415 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 98s # result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 98s # "error": "subschema is valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/$ref/not" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 98s # "error": "subschema is valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/1/$ref/not" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 98s # "error": "got integer, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/2/$ref/type" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 98s # "error": "subschema is valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/0/$ref/not" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 98s # "error": "subschema is valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/1/$ref/not" 98s # }, 98s # { 98s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 98s # "error": "got integer, not string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf/2/$ref/type" 98s # }, 98s # { 98s # "error": "no subschemas are valid", 98s # "instanceLocation": "", 98s # "keywordLocation": "/anyOf" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s # generated with: Test::JSON::Schema::Acceptance 1.029 98s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 98s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 98s # specification version: draft2020-12 98s # optional tests included: yes 98s # skipping directory: optional/format 98s # 98s # filename pass todo-fail fail 98s # --------------------------------------------------------------- 98s # additionalProperties.json 21 0 0 98s # allOf.json 30 0 0 98s # anchor.json 8 0 0 98s # anyOf.json 18 0 0 98s # boolean_schema.json 18 0 0 98s # const.json 50 0 0 98s # contains.json 21 0 0 98s # content.json 18 0 0 98s # default.json 7 0 0 98s # defs.json 2 0 0 98s # dependentRequired.json 20 0 0 98s # dependentSchemas.json 20 0 0 98s # dynamicRef.json 42 0 0 98s # enum.json 45 0 0 98s # exclusiveMaximum.json 4 0 0 98s # exclusiveMinimum.json 4 0 0 98s # format.json 133 0 0 98s # if-then-else.json 26 0 0 98s # infinite-loop-detection.json 2 0 0 98s # items.json 29 0 0 98s # maxContains.json 12 0 0 98s # maxItems.json 6 0 0 98s # maxLength.json 7 0 0 98s # maxProperties.json 10 0 0 98s # maximum.json 8 0 0 98s # minContains.json 28 0 0 98s # minItems.json 6 0 0 98s # minLength.json 7 0 0 98s # minProperties.json 8 0 0 98s # minimum.json 11 0 0 98s # multipleOf.json 10 0 0 98s # not.json 40 0 0 98s # oneOf.json 27 0 0 98s # pattern.json 9 0 0 98s # patternProperties.json 23 0 0 98s # prefixItems.json 11 0 0 98s # properties.json 28 0 0 98s # propertyNames.json 20 0 0 98s # ref.json 77 0 0 98s # refRemote.json 31 0 0 98s # required.json 16 0 0 98s # type.json 80 0 0 98s # unevaluatedItems.json 66 0 0 98s # unevaluatedProperties.json 124 0 0 98s # uniqueItems.json 69 0 0 98s # vocabulary.json 5 0 0 98s # optional/anchor.json 4 0 0 98s # optional/bignum.json 9 0 0 98s # optional/cross-draft.json 1 0 0 98s # optional/dependencies-compatibility.json 22 14 0 98s # optional/dynamicRef.json 2 0 0 98s # optional/ecmascript-regex.json 60 14 0 98s # optional/float-overflow.json 1 0 0 98s # optional/format-assertion.json 4 0 0 98s # optional/id.json 3 0 0 98s # optional/no-schema.json 3 0 0 98s # optional/non-bmp-regex.json 12 0 0 98s # optional/refOfUnknownKeyword.json 3 3 0 98s # optional/unknownKeyword.json 3 0 0 98s # --------------------------------------------------------------- 98s # TOTAL 1384 31 0 98s # 98s # Congratulations, all non-optional tests are passing! 98s # 98s ok 1416 - no leaks in the main evaluator object 98s ok 1417 - no leaks in the short-circuiting evaluator object 98s 1..1417 98s ok 98s t/zzz-acceptance-draft4-format.t ........ 98s # 98s # AUTHOR_TESTING: 98s # AUTOMATED_TESTING: 1 98s # EXTENDED_TESTING: 98s # NO_TODO: 98s # TEST_DIR: 98s # NO_SHORT_CIRCUIT: 98s # 98s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft4/optional/format against draft4... 98s # 98s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 26 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 27 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 28 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 29 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 30 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 31 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 32 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 33 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 34 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 35 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 36 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 37 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 38 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 39 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 40 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 41 - hostname.json: "validation of host names" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 42 - hostname.json: "validation of host names" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 43 - hostname.json: "validation of host names" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 44 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 45 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 46 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 47 - hostname.json: "validation of host names" - "a valid host name" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 48 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 49 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 50 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 51 - hostname.json: "validation of host names" - "a host name with a component too long" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 52 - hostname.json: "validation of host names" - "starts with hyphen" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 53 - hostname.json: "validation of host names" - "ends with hyphen" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 54 - hostname.json: "validation of host names" - "starts with underscore" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 55 - hostname.json: "validation of host names" - "ends with underscore" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 56 - hostname.json: "validation of host names" - "contains underscore" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 57 - hostname.json: "validation of host names" - "maximum label length" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 58 - hostname.json: "validation of host names" - "exceeds maximum label length" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 59 - hostname.json: "validation of host names" - "single label" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 60 - hostname.json: "validation of host names" - "single label with hyphen" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 61 - hostname.json: "validation of host names" - "single label with digits" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 62 - hostname.json: "validation of host names" - "single label ending with digit" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 63 - hostname.json: "validation of host names" - "empty string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 64 - hostname.json: "validation of host names" - "single dot" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 65 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 66 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 67 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 68 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 69 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 70 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 71 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 72 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 73 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 74 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 75 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 76 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 77 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 78 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 79 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 80 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 81 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 82 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 83 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 84 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 85 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 86 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 87 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 88 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 89 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 90 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 91 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 92 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 93 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 94 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 95 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 96 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 97 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 98 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 99 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 100 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 101 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 102 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 103 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 104 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 105 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 106 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 107 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 108 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 109 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 110 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 111 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 112 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 113 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 114 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 115 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 116 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 117 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 118 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 119 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 120 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 121 - unknown.json: "unknown format" - "unknown formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 122 - unknown.json: "unknown format" - "unknown formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 123 - unknown.json: "unknown format" - "unknown formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 124 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 125 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 126 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 127 - unknown.json: "unknown format" - "unknown formats ignore strings" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s # 98s ok 128 - uri.json: "validation of URIs" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 129 - uri.json: "validation of URIs" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 130 - uri.json: "validation of URIs" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 131 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 132 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 133 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 134 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 135 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 136 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 137 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 138 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 139 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 140 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 141 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 142 - uri.json: "validation of URIs" - "a valid URL " { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 143 - uri.json: "validation of URIs" - "a valid mailto URI" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 144 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 145 - uri.json: "validation of URIs" - "a valid tel URI" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 146 - uri.json: "validation of URIs" - "a valid URN" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 147 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 148 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 149 - uri.json: "validation of URIs" - "an invalid URI" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 150 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 151 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 152 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 153 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft4-format.t line 65. 98s # expected false; got true 98s # schema: { 98s # "format": "uri" 98s # } 98s # data: "bar,baz:foo" 98s # result: 1 98s 1..1 98s } 98s # 98s # generated with: Test::JSON::Schema::Acceptance 1.029 98s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 98s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 98s # specification version: draft4 98s # using custom test directory: /optional/format 98s # optional tests included: yes 98s # 98s # filename pass todo-fail fail 98s # --------------------------------------------------------------- 98s # date-time.json 25 0 0 98s # email.json 15 0 0 98s # hostname.json 24 0 0 98s # ipv4.json 16 0 0 98s # ipv6.json 40 0 0 98s # unknown.json 7 0 0 98s # uri.json 25 1 0 98s # --------------------------------------------------------------- 98s # TOTAL 152 1 0 98s # 98s # Congratulations, all non-optional tests are passing! 98s # 98s ok 154 - no leaks in the main evaluator object 98s ok 155 - no leaks in the short-circuiting evaluator object 98s 1..155 98s ok 101s t/zzz-acceptance-draft4.t ............... 101s # 101s # AUTHOR_TESTING: 101s # AUTOMATED_TESTING: 1 101s # EXTENDED_TESTING: 101s # NO_TODO: 101s # TEST_DIR: 101s # NO_SHORT_CIRCUIT: 101s # 101s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 101s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft4 against draft4... 101s # 101s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/3", 101s # "keywordLocation": "/additionalItems/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/3", 101s # "keywordLocation": "/additionalItems/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "all items match schema" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 4 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 5 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/3", 101s # "keywordLocation": "/additionalItems" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/3", 101s # "keywordLocation": "/additionalItems" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 9 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 10 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 11 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 12 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 13 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not boolean", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/additionalItems/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not boolean", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/additionalItems/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 14 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 15 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/additionalItems/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/additionalItems/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 16 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/additionalItems" 101s # }, 101s # { 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/2", 101s # "keywordLocation": "/additionalItems" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/additionalItems" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 17 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 18 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 19 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 20 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/quux", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/quux", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 25 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 26 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/élmény", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/élmény", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 27 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 28 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 29 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not boolean", 101s # "instanceLocation": "/quux", 101s # "keywordLocation": "/additionalProperties/type" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not boolean", 101s # "instanceLocation": "/quux", 101s # "keywordLocation": "/additionalProperties/type" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 30 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 31 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not boolean", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/additionalProperties/type" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not boolean", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/additionalProperties/type" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 32 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 33 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not boolean", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/additionalProperties/type" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not boolean", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/additionalProperties/type" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 34 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 35 - allOf.json: "allOf" - "allOf" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 36 - allOf.json: "allOf" - "mismatch second" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/required" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/required" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 37 - allOf.json: "allOf" - "mismatch first" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/1/required" 101s # }, 101s # { 101s # "error": "subschema 1 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/1/required" 101s # }, 101s # { 101s # "error": "subschema 1 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 38 - allOf.json: "allOf" - "wrong type" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/allOf/0/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/properties" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/allOf/0/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/properties" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 39 - allOf.json: "allOf with base schema" - "valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 40 - allOf.json: "allOf with base schema" - "mismatch base schema" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 41 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/required" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/required" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 42 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: baz", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/1/required" 101s # }, 101s # { 101s # "error": "subschema 1 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: baz", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/1/required" 101s # }, 101s # { 101s # "error": "subschema 1 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 43 - allOf.json: "allOf with base schema" - "mismatch both" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/required" 101s # }, 101s # { 101s # "error": "object is missing property: baz", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/1/required" 101s # }, 101s # { 101s # "error": "subschemas 0, 1 are not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/required" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 44 - allOf.json: "allOf simple types" - "valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 45 - allOf.json: "allOf simple types" - "mismatch one" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 30", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/maximum" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 30", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/maximum" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 46 - allOf.json: "allOf with one empty schema" - "any data is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 47 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 48 - allOf.json: "allOf with the first empty schema" - "number is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 49 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/1/type" 101s # }, 101s # { 101s # "error": "subschema 1 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/1/type" 101s # }, 101s # { 101s # "error": "subschema 1 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 50 - allOf.json: "allOf with the last empty schema" - "number is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 51 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/type" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/type" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 52 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 53 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/allOf/0/type" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/allOf" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/allOf/0/type" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/allOf" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 54 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # }, 101s # { 101s # "error": "value is not a multiple of 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # }, 101s # { 101s # "error": "value is not a multiple of 5", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 55 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # }, 101s # { 101s # "error": "value is not a multiple of 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 56 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # }, 101s # { 101s # "error": "value is not a multiple of 5", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 57 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 58 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # }, 101s # { 101s # "error": "value is not a multiple of 5", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 5", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 5", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/multipleOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 62 - anyOf.json: "anyOf" - "first anyOf valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 63 - anyOf.json: "anyOf" - "second anyOf valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 64 - anyOf.json: "anyOf" - "both anyOf valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 65 - anyOf.json: "anyOf" - "neither anyOf valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/type" 101s # }, 101s # { 101s # "error": "value is less than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/1/minimum" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/type" 101s # }, 101s # { 101s # "error": "value is less than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/1/minimum" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 66 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 67 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 68 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "length is greater than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/maxLength" 101s # }, 101s # { 101s # "error": "length is less than 4", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/1/minLength" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "length is greater than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/maxLength" 101s # }, 101s # { 101s # "error": "length is less than 4", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/1/minLength" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 69 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 70 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 71 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 72 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/anyOf/0/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/properties" 101s # }, 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/anyOf/1/properties/foo/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/1/properties" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/anyOf/0/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/properties" 101s # }, 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/anyOf/1/properties/foo/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/1/properties" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 73 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 74 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 75 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 76 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/anyOf/0/type" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/anyOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/anyOf/0/type" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/anyOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 77 - default.json: "invalid type for default" - "valid when property is specified" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 78 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 79 - default.json: "invalid string value for default" - "valid when property is specified" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 80 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 81 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (passing)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 82 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (failing)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 3", 101s # "instanceLocation": "/alpha", 101s # "keywordLocation": "/properties/alpha/maximum" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 3", 101s # "instanceLocation": "/alpha", 101s # "keywordLocation": "/properties/alpha/maximum" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 83 - default.json: "the default keyword does not do anything if the property is missing" - "missing properties are not filled in with the default" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 84 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 85 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/simpleTypes/enum", 101s # "error": "value does not match", 101s # "instanceLocation": "/definitions/foo/type", 101s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf/1/type", 101s # "error": "got integer, not array", 101s # "instanceLocation": "/definitions/foo/type", 101s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf", 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "/definitions/foo/type", 101s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "/definitions/foo", 101s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/definitions/additionalProperties", 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "/definitions", 101s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/simpleTypes/enum", 101s # "error": "value does not match", 101s # "instanceLocation": "/definitions/foo/type", 101s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf/1/type", 101s # "error": "got integer, not array", 101s # "instanceLocation": "/definitions/foo/type", 101s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf", 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "/definitions/foo/type", 101s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "/definitions/foo", 101s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/definitions/additionalProperties", 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "/definitions", 101s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 86 - dependencies.json: "dependencies" - "neither" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 87 - dependencies.json: "dependencies" - "nondependant" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 88 - dependencies.json: "dependencies" - "with dependency" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 89 - dependencies.json: "dependencies" - "missing dependency" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/bar" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/bar" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 90 - dependencies.json: "dependencies" - "ignores arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 91 - dependencies.json: "dependencies" - "ignores strings" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 92 - dependencies.json: "dependencies" - "ignores other non-objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 93 - dependencies.json: "multiple dependencies" - "neither" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 94 - dependencies.json: "multiple dependencies" - "nondependants" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 95 - dependencies.json: "multiple dependencies" - "with dependencies" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 96 - dependencies.json: "multiple dependencies" - "missing dependency" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/quux" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/quux" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 97 - dependencies.json: "multiple dependencies" - "missing other dependency" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/quux" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/quux" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 98 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: foo, bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/quux" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: foo, bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/quux" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 99 - dependencies.json: "multiple dependencies subschema" - "valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 100 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 101 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/dependencies/bar/properties/foo/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/bar/properties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/dependencies/bar/properties/foo/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/bar/properties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 102 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/dependencies/bar/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/bar/properties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/dependencies/bar/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/bar/properties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 103 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/dependencies/bar/properties/bar/type" 101s # }, 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/dependencies/bar/properties/foo/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/bar/properties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/dependencies/bar/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/bar/properties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 104 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 105 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 106 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 107 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo\rbar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo\nbar" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo\rbar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo\nbar" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 108 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object has fewer than 4 properties", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object has fewer than 4 properties", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 109 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo\"bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo'bar/required" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo\"bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo'bar/required" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 110 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo'bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo\"bar" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo'bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo\"bar" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 111 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/dependencies/foo/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo/additionalProperties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/dependencies/foo/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo/additionalProperties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 112 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 113 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/dependencies/foo/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo/additionalProperties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/dependencies/foo/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies/foo/additionalProperties" 101s # }, 101s # { 101s # "error": "not all dependencies are satisfied", 101s # "instanceLocation": "", 101s # "keywordLocation": "/dependencies" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 114 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 115 - enum.json: "simple enum validation" - "one of the enum is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 116 - enum.json: "simple enum validation" - "something else is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 117 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 118 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 119 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 120 - enum.json: "heterogeneous enum validation" - "valid object matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 121 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 122 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 123 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 124 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 125 - enum.json: "enums in properties" - "both properties are valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 126 - enum.json: "enums in properties" - "wrong foo value" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/properties/foo/enum" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/properties/foo/enum" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 127 - enum.json: "enums in properties" - "wrong bar value" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/properties/bar/enum" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/properties/bar/enum" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 128 - enum.json: "enums in properties" - "missing optional property is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 129 - enum.json: "enums in properties" - "missing required property is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 130 - enum.json: "enums in properties" - "missing all properties is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 131 - enum.json: "enum with escaped characters" - "member 1 is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 132 - enum.json: "enum with escaped characters" - "member 2 is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 133 - enum.json: "enum with escaped characters" - "another string is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 134 - enum.json: "enum with false does not match 0" - "false is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 135 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 136 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 137 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 138 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 139 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 140 - enum.json: "enum with true does not match 1" - "true is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 141 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 142 - enum.json: "enum with true does not match 1" - "float one is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 143 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 144 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 145 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 146 - enum.json: "enum with 0 does not match false" - "false is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 147 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 148 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 149 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 150 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 151 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 152 - enum.json: "enum with 1 does not match true" - "true is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 153 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 154 - enum.json: "enum with 1 does not match true" - "float one is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 155 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 156 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 157 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 158 - enum.json: "nul characters in strings" - "match string with nul" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 159 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 160 - format.json: "email format" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 161 - format.json: "email format" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 162 - format.json: "email format" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 163 - format.json: "email format" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 164 - format.json: "email format" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 165 - format.json: "email format" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 166 - format.json: "ipv4 format" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 167 - format.json: "ipv4 format" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 168 - format.json: "ipv4 format" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 169 - format.json: "ipv4 format" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 170 - format.json: "ipv4 format" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 171 - format.json: "ipv4 format" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 172 - format.json: "ipv6 format" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 173 - format.json: "ipv6 format" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 174 - format.json: "ipv6 format" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 175 - format.json: "ipv6 format" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 176 - format.json: "ipv6 format" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 177 - format.json: "ipv6 format" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 178 - format.json: "hostname format" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 179 - format.json: "hostname format" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 180 - format.json: "hostname format" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 181 - format.json: "hostname format" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 182 - format.json: "hostname format" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 183 - format.json: "hostname format" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 184 - format.json: "date-time format" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 185 - format.json: "date-time format" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 186 - format.json: "date-time format" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 187 - format.json: "date-time format" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 188 - format.json: "date-time format" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 189 - format.json: "date-time format" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 190 - format.json: "uri format" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 191 - format.json: "uri format" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 192 - format.json: "uri format" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 193 - format.json: "uri format" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 194 - format.json: "uri format" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 195 - format.json: "uri format" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 196 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "passing case" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 197 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "failing case" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/int/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/properties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "#/definitions/int/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/1/additionalProperties" 101s # }, 101s # { 101s # "error": "subschemas 0, 1 are not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/int/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/properties" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 198 - items.json: "a schema given for items" - "valid items" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 199 - items.json: "a schema given for items" - "wrong type of items" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/items/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/items/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 200 - items.json: "a schema given for items" - "ignores non-arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 201 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 202 - items.json: "an array of schemas for items" - "correct types" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 203 - items.json: "an array of schemas for items" - "wrong types" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/0/type" 101s # }, 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/items/1/type" 101s # }, 101s # { 101s # "error": "not all items are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/0/type" 101s # }, 101s # { 101s # "error": "not all items are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 204 - items.json: "an array of schemas for items" - "incomplete array of items" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 205 - items.json: "an array of schemas for items" - "array with additional items" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 206 - items.json: "an array of schemas for items" - "empty array" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 207 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 208 - items.json: "items and subitems" - "valid items" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 209 - items.json: "items and subitems" - "too many items" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/3", 101s # "keywordLocation": "/additionalItems" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/3", 101s # "keywordLocation": "/additionalItems" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 210 - items.json: "items and subitems" - "too many sub-items" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/0/2", 101s # "keywordLocation": "/items/0/$ref/additionalItems" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/0/$ref/additionalItems" 101s # }, 101s # { 101s # "error": "not all items are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/0/2", 101s # "keywordLocation": "/items/0/$ref/additionalItems" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/0/$ref/additionalItems" 101s # }, 101s # { 101s # "error": "not all items are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 211 - items.json: "items and subitems" - "wrong item" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/item/type", 101s # "error": "got object, not array", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/0/$ref/type" 101s # }, 101s # { 101s # "error": "not all items are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/item/type", 101s # "error": "got object, not array", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/0/$ref/type" 101s # }, 101s # { 101s # "error": "not all items are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 212 - items.json: "items and subitems" - "wrong sub-item" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "/0/0", 101s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "#/definitions/item/items", 101s # "error": "not all items are valid", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/0/$ref/items" 101s # }, 101s # { 101s # "error": "not all items are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "/0/0", 101s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "#/definitions/item/items", 101s # "error": "not all items are valid", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/0/$ref/items" 101s # }, 101s # { 101s # "error": "not all items are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 213 - items.json: "items and subitems" - "fewer items is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 214 - items.json: "nested items" - "valid nested array" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 215 - items.json: "nested items" - "nested array with invalid type" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "/0/0/0/0", 101s # "keywordLocation": "/items/items/items/items/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0/0/0", 101s # "keywordLocation": "/items/items/items/items" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0/0", 101s # "keywordLocation": "/items/items/items" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/items" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "/0/0/0/0", 101s # "keywordLocation": "/items/items/items/items/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0/0/0", 101s # "keywordLocation": "/items/items/items/items" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0/0", 101s # "keywordLocation": "/items/items/items" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/items" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 216 - items.json: "nested items" - "not deep enough" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not array", 101s # "instanceLocation": "/0/0/0", 101s # "keywordLocation": "/items/items/items/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0/0", 101s # "keywordLocation": "/items/items/items" 101s # }, 101s # { 101s # "error": "got integer, not array", 101s # "instanceLocation": "/0/1/0", 101s # "keywordLocation": "/items/items/items/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0/1", 101s # "keywordLocation": "/items/items/items" 101s # }, 101s # { 101s # "error": "got integer, not array", 101s # "instanceLocation": "/0/2/0", 101s # "keywordLocation": "/items/items/items/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0/2", 101s # "keywordLocation": "/items/items/items" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/items" 101s # }, 101s # { 101s # "error": "got integer, not array", 101s # "instanceLocation": "/1/0/0", 101s # "keywordLocation": "/items/items/items/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/1/0", 101s # "keywordLocation": "/items/items/items" 101s # }, 101s # { 101s # "error": "got integer, not array", 101s # "instanceLocation": "/1/1/0", 101s # "keywordLocation": "/items/items/items/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/1/1", 101s # "keywordLocation": "/items/items/items" 101s # }, 101s # { 101s # "error": "got integer, not array", 101s # "instanceLocation": "/1/2/0", 101s # "keywordLocation": "/items/items/items/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/1/2", 101s # "keywordLocation": "/items/items/items" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/items/items" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not array", 101s # "instanceLocation": "/0/0/0", 101s # "keywordLocation": "/items/items/items/type" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0/0", 101s # "keywordLocation": "/items/items/items" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/items" 101s # }, 101s # { 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 217 - items.json: "items with null instance elements" - "allows null elements" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 218 - items.json: "array-form items with null instance elements" - "allows null elements" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 219 - maxItems.json: "maxItems validation" - "shorter is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 220 - maxItems.json: "maxItems validation" - "exact length is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 221 - maxItems.json: "maxItems validation" - "too long is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "array has more than 2 items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maxItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "array has more than 2 items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maxItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 222 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 223 - maxLength.json: "maxLength validation" - "shorter is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 224 - maxLength.json: "maxLength validation" - "exact length is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 225 - maxLength.json: "maxLength validation" - "too long is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "length is greater than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maxLength" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "length is greater than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maxLength" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 226 - maxLength.json: "maxLength validation" - "ignores non-strings" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 227 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 228 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 229 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 230 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object has more than 2 properties", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maxProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object has more than 2 properties", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maxProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 231 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 232 - maxProperties.json: "maxProperties validation" - "ignores strings" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 233 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 234 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 235 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object has more than 0 property", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maxProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object has more than 0 property", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maxProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 236 - maximum.json: "maximum validation" - "below the maximum is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 237 - maximum.json: "maximum validation" - "boundary point is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 238 - maximum.json: "maximum validation" - "above the maximum is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maximum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maximum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 239 - maximum.json: "maximum validation" - "ignores non-numbers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 240 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 241 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 242 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 243 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 300", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maximum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 300", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maximum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 244 - maximum.json: "maximum validation (explicit false exclusivity)" - "below the maximum is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 245 - maximum.json: "maximum validation (explicit false exclusivity)" - "boundary point is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 246 - maximum.json: "maximum validation (explicit false exclusivity)" - "above the maximum is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maximum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maximum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 247 - maximum.json: "maximum validation (explicit false exclusivity)" - "ignores non-numbers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 248 - maximum.json: "exclusiveMaximum validation" - "below the maximum is still valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 249 - maximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than or equal to 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maximum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than or equal to 3", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maximum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 250 - minItems.json: "minItems validation" - "longer is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 251 - minItems.json: "minItems validation" - "exact length is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 252 - minItems.json: "minItems validation" - "too short is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "array has fewer than 1 item", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "array has fewer than 1 item", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 253 - minItems.json: "minItems validation" - "ignores non-arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 254 - minLength.json: "minLength validation" - "longer is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 255 - minLength.json: "minLength validation" - "exact length is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 256 - minLength.json: "minLength validation" - "too short is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "length is less than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minLength" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "length is less than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minLength" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 257 - minLength.json: "minLength validation" - "ignores non-strings" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 258 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "length is less than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minLength" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "length is less than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minLength" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 259 - minProperties.json: "minProperties validation" - "longer is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 260 - minProperties.json: "minProperties validation" - "exact length is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 261 - minProperties.json: "minProperties validation" - "too short is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object has fewer than 1 property", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object has fewer than 1 property", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 262 - minProperties.json: "minProperties validation" - "ignores arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 263 - minProperties.json: "minProperties validation" - "ignores strings" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 264 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 265 - minimum.json: "minimum validation" - "above the minimum is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 266 - minimum.json: "minimum validation" - "boundary point is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 267 - minimum.json: "minimum validation" - "below the minimum is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than 1.1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than 1.1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 268 - minimum.json: "minimum validation" - "ignores non-numbers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 269 - minimum.json: "minimum validation (explicit false exclusivity)" - "above the minimum is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 270 - minimum.json: "minimum validation (explicit false exclusivity)" - "boundary point is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 271 - minimum.json: "minimum validation (explicit false exclusivity)" - "below the minimum is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than 1.1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than 1.1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 272 - minimum.json: "minimum validation (explicit false exclusivity)" - "ignores non-numbers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 273 - minimum.json: "exclusiveMinimum validation" - "above the minimum is still valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 274 - minimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than or equal to 1.1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than or equal to 1.1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 275 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 276 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 277 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 278 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 279 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than -2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than -2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 280 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than -2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than -2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 281 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 282 - multipleOf.json: "by int" - "int by int" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 283 - multipleOf.json: "by int" - "int by int fail" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/multipleOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/multipleOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 284 - multipleOf.json: "by int" - "ignores non-numbers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 285 - multipleOf.json: "by number" - "zero is multiple of anything" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 286 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 287 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 1.5", 101s # "instanceLocation": "", 101s # "keywordLocation": "/multipleOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 1.5", 101s # "instanceLocation": "", 101s # "keywordLocation": "/multipleOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 288 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 289 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 0.0001", 101s # "instanceLocation": "", 101s # "keywordLocation": "/multipleOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is not a multiple of 0.0001", 101s # "instanceLocation": "", 101s # "keywordLocation": "/multipleOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 290 - multipleOf.json: "float division = inf" - "invalid, but naive implementations may raise an overflow error" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # }, 101s # { 101s # "error": "value is not a multiple of 0.123456789", 101s # "instanceLocation": "", 101s # "keywordLocation": "/multipleOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 291 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 292 - not.json: "not" - "allowed" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 293 - not.json: "not" - "disallowed" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 294 - not.json: "not multiple types" - "valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 295 - not.json: "not multiple types" - "mismatch" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 296 - not.json: "not multiple types" - "other mismatch" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 297 - not.json: "not more complex schema" - "match" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 298 - not.json: "not more complex schema" - "other match" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 299 - not.json: "not more complex schema" - "mismatch" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 300 - not.json: "forbidden property" - "property present" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/properties/foo/not" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/properties/foo/not" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 301 - not.json: "forbidden property" - "property absent" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 302 - not.json: "forbid everything with empty schema" - "number is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 303 - not.json: "forbid everything with empty schema" - "string is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 304 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 305 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 306 - not.json: "forbid everything with empty schema" - "null is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 307 - not.json: "forbid everything with empty schema" - "object is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 308 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 309 - not.json: "forbid everything with empty schema" - "array is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 310 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "subschema is valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/not" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 311 - not.json: "double negation" - "any value is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 312 - oneOf.json: "oneOf" - "first oneOf valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 313 - oneOf.json: "oneOf" - "second oneOf valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 314 - oneOf.json: "oneOf" - "both oneOf valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 315 - oneOf.json: "oneOf" - "neither oneOf valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/type" 101s # }, 101s # { 101s # "error": "value is less than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/1/minimum" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/type" 101s # }, 101s # { 101s # "error": "value is less than 2", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/1/minimum" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 316 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # }, 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 317 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 318 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 319 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 320 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 321 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 322 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/oneOf/0/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/properties" 101s # }, 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/oneOf/1/properties/foo/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/1/properties" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/oneOf/0/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/properties" 101s # }, 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/oneOf/1/properties/foo/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/1/properties" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 323 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 324 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 325 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/required" 101s # }, 101s # { 101s # "error": "object is missing properties: foo, baz", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/1/required" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/required" 101s # }, 101s # { 101s # "error": "object is missing properties: foo, baz", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/1/required" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 326 - oneOf.json: "oneOf with required" - "first valid - valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 327 - oneOf.json: "oneOf with required" - "second valid - valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 328 - oneOf.json: "oneOf with required" - "both valid - invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 329 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 330 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 331 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "multiple subschemas are valid: 0, 1", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 332 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/required" 101s # }, 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/1/required" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: bar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/required" 101s # }, 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/1/required" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 333 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 334 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/oneOf/0/type" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/oneOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/oneOf/0/type" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf/0/oneOf" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/oneOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 335 - pattern.json: "pattern validation" - "a matching pattern is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 336 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 337 - pattern.json: "pattern validation" - "ignores booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 338 - pattern.json: "pattern validation" - "ignores integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 339 - pattern.json: "pattern validation" - "ignores floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 340 - pattern.json: "pattern validation" - "ignores objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 341 - pattern.json: "pattern validation" - "ignores arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 342 - pattern.json: "pattern validation" - "ignores null" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 343 - pattern.json: "pattern is not anchored" - "matches a substring" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 344 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 345 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 346 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/patternProperties/f.*o/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/patternProperties/f.*o/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 347 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/patternProperties/f.*o/type" 101s # }, 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/foooooo", 101s # "keywordLocation": "/patternProperties/f.*o/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/patternProperties/f.*o/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 348 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 349 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 350 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 351 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 352 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 353 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 354 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/a", 101s # "keywordLocation": "/patternProperties/a*/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/a", 101s # "keywordLocation": "/patternProperties/a*/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 355 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 20", 101s # "instanceLocation": "/aaaa", 101s # "keywordLocation": "/patternProperties/aaa*/maximum" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than 20", 101s # "instanceLocation": "/aaaa", 101s # "keywordLocation": "/patternProperties/aaa*/maximum" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 356 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/aaa", 101s # "keywordLocation": "/patternProperties/a*/type" 101s # }, 101s # { 101s # "error": "value is greater than 20", 101s # "instanceLocation": "/aaaa", 101s # "keywordLocation": "/patternProperties/aaa*/maximum" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/aaa", 101s # "keywordLocation": "/patternProperties/a*/type" 101s # }, 101s # { 101s # "error": "value is greater than 20", 101s # "instanceLocation": "/aaaa", 101s # "keywordLocation": "/patternProperties/aaa*/maximum" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 357 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 358 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not boolean", 101s # "instanceLocation": "/a31b", 101s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not boolean", 101s # "instanceLocation": "/a31b", 101s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 359 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 360 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "/a_X_3", 101s # "keywordLocation": "/patternProperties/X_/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "/a_X_3", 101s # "keywordLocation": "/patternProperties/X_/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 361 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 362 - properties.json: "object properties validation" - "both properties present and valid is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 363 - properties.json: "object properties validation" - "one property invalid is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not string", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not string", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 364 - properties.json: "object properties validation" - "both properties invalid is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not string", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/properties/bar/type" 101s # }, 101s # { 101s # "error": "got array, not integer", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/properties/foo/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not string", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/properties/bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 365 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 366 - properties.json: "object properties validation" - "ignores arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 367 - properties.json: "object properties validation" - "ignores other non-objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 368 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 369 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "array has more than 3 items", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/properties/foo/maxItems" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "array has more than 3 items", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/properties/foo/maxItems" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 370 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "array has fewer than 2 items", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/patternProperties/f.o/minItems" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "array has fewer than 2 items", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/patternProperties/f.o/minItems" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 371 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 372 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "array has fewer than 2 items", 101s # "instanceLocation": "/fxo", 101s # "keywordLocation": "/patternProperties/f.o/minItems" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "array has fewer than 2 items", 101s # "instanceLocation": "/fxo", 101s # "keywordLocation": "/patternProperties/f.o/minItems" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 373 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 374 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 375 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/quux", 101s # "keywordLocation": "/additionalProperties/type" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/quux", 101s # "keywordLocation": "/additionalProperties/type" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 376 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 377 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "/foo\tbar", 101s # "keywordLocation": "/properties/foo\tbar/type" 101s # }, 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "/foo\nbar", 101s # "keywordLocation": "/properties/foo\nbar/type" 101s # }, 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "/foo\fbar", 101s # "keywordLocation": "/properties/foo\fbar/type" 101s # }, 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "/foo\rbar", 101s # "keywordLocation": "/properties/foo\rbar/type" 101s # }, 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "/foo\"bar", 101s # "keywordLocation": "/properties/foo\"bar/type" 101s # }, 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "/foo\\bar", 101s # "keywordLocation": "/properties/foo\\bar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "/foo\tbar", 101s # "keywordLocation": "/properties/foo\tbar/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 378 - properties.json: "properties with null valued instance properties" - "allows null values" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 379 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 380 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 381 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 382 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "/__proto__", 101s # "keywordLocation": "/properties/__proto__/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "/__proto__", 101s # "keywordLocation": "/properties/__proto__/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 383 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "/toString/length", 101s # "keywordLocation": "/properties/toString/properties/length/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "/toString", 101s # "keywordLocation": "/properties/toString/properties" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "/toString/length", 101s # "keywordLocation": "/properties/toString/properties/length/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "/toString", 101s # "keywordLocation": "/properties/toString/properties" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 384 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not number", 101s # "instanceLocation": "/constructor", 101s # "keywordLocation": "/properties/constructor/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not number", 101s # "instanceLocation": "/constructor", 101s # "keywordLocation": "/properties/constructor/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 385 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 386 - ref.json: "root pointer ref" - "match" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 387 - ref.json: "root pointer ref" - "recursive match" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 388 - ref.json: "root pointer ref" - "mismatch" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 389 - ref.json: "root pointer ref" - "recursive mismatch" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/additionalProperties", 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/foo/bar", 101s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "#/additionalProperties", 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/additionalProperties", 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/foo/bar", 101s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "#/additionalProperties", 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 390 - ref.json: "relative pointer ref to object" - "match" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 391 - ref.json: "relative pointer ref to object" - "mismatch" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/properties/foo/type", 101s # "error": "got boolean, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/properties/bar/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/properties/foo/type", 101s # "error": "got boolean, not integer", 101s # "instanceLocation": "/bar", 101s # "keywordLocation": "/properties/bar/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 392 - ref.json: "relative pointer ref to array" - "match array" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 393 - ref.json: "relative pointer ref to array" - "mismatch array" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/items/0/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/items/1/$ref/type" 101s # }, 101s # { 101s # "error": "not all items are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/items/0/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/1", 101s # "keywordLocation": "/items/1/$ref/type" 101s # }, 101s # { 101s # "error": "not all items are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 394 - ref.json: "escaped pointer ref" - "slash invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/slash", 101s # "keywordLocation": "/properties/slash/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/slash", 101s # "keywordLocation": "/properties/slash/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 395 - ref.json: "escaped pointer ref" - "tilde invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/tilde", 101s # "keywordLocation": "/properties/tilde/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/tilde", 101s # "keywordLocation": "/properties/tilde/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 396 - ref.json: "escaped pointer ref" - "percent invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/percent", 101s # "keywordLocation": "/properties/percent/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/percent", 101s # "keywordLocation": "/properties/percent/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 397 - ref.json: "escaped pointer ref" - "slash valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 398 - ref.json: "escaped pointer ref" - "tilde valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 399 - ref.json: "escaped pointer ref" - "percent valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 400 - ref.json: "nested refs" - "nested ref valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 401 - ref.json: "nested refs" - "nested ref invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/a/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/a/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 402 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 403 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 404 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/reffed/type", 101s # "error": "got string, not array", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/properties/foo/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/reffed/type", 101s # "error": "got string, not array", 101s # "instanceLocation": "/foo", 101s # "keywordLocation": "/properties/foo/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 405 - ref.json: "$ref prevents a sibling id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 406 - ref.json: "$ref prevents a sibling id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 407 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 408 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger/minimum", 101s # "error": "value is less than 0", 101s # "instanceLocation": "/minLength", 101s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "/minLength", 101s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger/minimum", 101s # "error": "value is less than 0", 101s # "instanceLocation": "/minLength", 101s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "/minLength", 101s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 409 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 410 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "/$ref", 101s # "keywordLocation": "/properties/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "/$ref", 101s # "keywordLocation": "/properties/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 411 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 412 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/is-string/type", 101s # "error": "got integer, not string", 101s # "instanceLocation": "/$ref", 101s # "keywordLocation": "/properties/$ref/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/is-string/type", 101s # "error": "got integer, not string", 101s # "instanceLocation": "/$ref", 101s # "keywordLocation": "/properties/$ref/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 413 - ref.json: "Recursive references between schemas" - "valid tree" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 414 - ref.json: "Recursive references between schemas" - "invalid tree" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 101s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "/nodes/0/subtree/nodes/0", 101s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/nodes/0/subtree/nodes", 101s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "/nodes/0/subtree", 101s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "/nodes/0", 101s # "keywordLocation": "/properties/nodes/items/$ref/properties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/nodes", 101s # "keywordLocation": "/properties/nodes/items" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 101s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "/nodes/0/subtree/nodes/0", 101s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/nodes/0/subtree/nodes", 101s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "/nodes/0/subtree", 101s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "/nodes/0", 101s # "keywordLocation": "/properties/nodes/items/$ref/properties" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/nodes", 101s # "keywordLocation": "/properties/nodes/items" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 415 - ref.json: "refs with quote" - "object with numbers is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 416 - ref.json: "refs with quote" - "object with strings is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "/foo\"bar", 101s # "keywordLocation": "/properties/foo\"bar/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "/foo\"bar", 101s # "keywordLocation": "/properties/foo\"bar/$ref/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 417 - ref.json: "Location-independent identifier" - "match" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 418 - ref.json: "Location-independent identifier" - "mismatch" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/A/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/A/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 419 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 420 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 421 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/enum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 422 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 423 - ref.json: "id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 424 - ref.json: "id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 425 - ref.json: "id with file URI still resolves pointers - *nix" - "number is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 426 - ref.json: "id with file URI still resolves pointers - *nix" - "non-number is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 427 - ref.json: "id with file URI still resolves pointers - windows" - "number is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 428 - ref.json: "id with file URI still resolves pointers - windows" - "non-number is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 429 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 430 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions//definitions//type", 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions//definitions//type", 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf/0/$ref/type" 101s # }, 101s # { 101s # "error": "subschema 0 is not valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/allOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 431 - refRemote.json: "remote ref" - "remote ref valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 432 - refRemote.json: "remote ref" - "remote ref invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 433 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 434 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 435 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 436 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/$ref/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/$ref/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 437 - refRemote.json: "base URI change" - "base URI change ref valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 438 - refRemote.json: "base URI change" - "base URI change ref invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/0/0", 101s # "keywordLocation": "/items/items/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/items" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/0/0", 101s # "keywordLocation": "/items/items/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/0", 101s # "keywordLocation": "/items/items" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/items" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 439 - refRemote.json: "base URI change - change folder" - "number is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 440 - refRemote.json: "base URI change - change folder" - "string is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/list/0", 101s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/list", 101s # "keywordLocation": "/properties/list/$ref/items" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/list/0", 101s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/list", 101s # "keywordLocation": "/properties/list/$ref/items" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 441 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 442 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/list/0", 101s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/list", 101s # "keywordLocation": "/properties/list/$ref/items" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "/list/0", 101s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 101s # "error": "subschema is not valid against all items", 101s # "instanceLocation": "/list", 101s # "keywordLocation": "/properties/list/$ref/items" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 443 - refRemote.json: "root ref in remote ref" - "string is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 444 - refRemote.json: "root ref in remote ref" - "null is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 445 - refRemote.json: "root ref in remote ref" - "object is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf/0/type", 101s # "error": "got object, not null", 101s # "instanceLocation": "/name", 101s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/type", 101s # "error": "got object, not string", 101s # "instanceLocation": "/name", 101s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf", 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "/name", 101s # "keywordLocation": "/properties/name/$ref/anyOf" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf/0/type", 101s # "error": "got object, not null", 101s # "instanceLocation": "/name", 101s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/type", 101s # "error": "got object, not string", 101s # "instanceLocation": "/name", 101s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf", 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "/name", 101s # "keywordLocation": "/properties/name/$ref/anyOf" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/properties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 446 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 447 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/locationIndependentIdentifier.json#/definitions/A/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/$ref/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "http://localhost:1234/draft4/locationIndependentIdentifier.json#/definitions/A/type", 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/$ref/$ref/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 448 - required.json: "required validation" - "present required property is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 449 - required.json: "required validation" - "non-present required property is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing property: foo", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 450 - required.json: "required validation" - "ignores arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 451 - required.json: "required validation" - "ignores strings" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 452 - required.json: "required validation" - "ignores other non-objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 453 - required.json: "required default validation" - "not required by default" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 454 - required.json: "required with escaped characters" - "object with all properties present is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 455 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 456 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 457 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 458 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: __proto__, toString, constructor", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: __proto__, toString, constructor", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 459 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: toString, constructor", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: toString, constructor", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 460 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: __proto__, constructor", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: __proto__, constructor", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 461 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: __proto__, toString", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "object is missing properties: __proto__, toString", 101s # "instanceLocation": "", 101s # "keywordLocation": "/required" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 462 - required.json: "required properties whose names are Javascript object property names" - "all present" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 463 - type.json: "integer type matches integers" - "an integer is an integer" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 464 - type.json: "integer type matches integers" - "a float is not an integer" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 465 - type.json: "integer type matches integers" - "a string is not an integer" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 466 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 467 - type.json: "integer type matches integers" - "an object is not an integer" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 468 - type.json: "integer type matches integers" - "an array is not an integer" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 469 - type.json: "integer type matches integers" - "a boolean is not an integer" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 470 - type.json: "integer type matches integers" - "null is not an integer" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 471 - type.json: "number type matches numbers" - "an integer is a number" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 472 - type.json: "number type matches numbers" - "a float with zero fractional part is a number" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 473 - type.json: "number type matches numbers" - "a float is a number" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 474 - type.json: "number type matches numbers" - "a string is not a number" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 475 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 476 - type.json: "number type matches numbers" - "an object is not a number" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 477 - type.json: "number type matches numbers" - "an array is not a number" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 478 - type.json: "number type matches numbers" - "a boolean is not a number" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 479 - type.json: "number type matches numbers" - "null is not a number" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not number", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 480 - type.json: "string type matches strings" - "1 is not a string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 481 - type.json: "string type matches strings" - "a float is not a string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 482 - type.json: "string type matches strings" - "a string is a string" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 483 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 484 - type.json: "string type matches strings" - "an empty string is still a string" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 485 - type.json: "string type matches strings" - "an object is not a string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 486 - type.json: "string type matches strings" - "an array is not a string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 487 - type.json: "string type matches strings" - "a boolean is not a string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 488 - type.json: "string type matches strings" - "null is not a string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 489 - type.json: "object type matches objects" - "an integer is not an object" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 490 - type.json: "object type matches objects" - "a float is not an object" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 491 - type.json: "object type matches objects" - "a string is not an object" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 492 - type.json: "object type matches objects" - "an object is an object" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 493 - type.json: "object type matches objects" - "an array is not an object" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 494 - type.json: "object type matches objects" - "a boolean is not an object" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 495 - type.json: "object type matches objects" - "null is not an object" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 496 - type.json: "array type matches arrays" - "an integer is not an array" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 497 - type.json: "array type matches arrays" - "a float is not an array" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 498 - type.json: "array type matches arrays" - "a string is not an array" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 499 - type.json: "array type matches arrays" - "an object is not an array" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 500 - type.json: "array type matches arrays" - "an array is an array" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 501 - type.json: "array type matches arrays" - "a boolean is not an array" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 502 - type.json: "array type matches arrays" - "null is not an array" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not array", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 503 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 504 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 505 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 506 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 507 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 508 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 509 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 510 - type.json: "boolean type matches booleans" - "true is a boolean" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 511 - type.json: "boolean type matches booleans" - "false is a boolean" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 512 - type.json: "boolean type matches booleans" - "null is not a boolean" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not boolean", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 513 - type.json: "null type matches only the null object" - "an integer is not null" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 514 - type.json: "null type matches only the null object" - "a float is not null" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 515 - type.json: "null type matches only the null object" - "zero is not null" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 516 - type.json: "null type matches only the null object" - "a string is not null" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 517 - type.json: "null type matches only the null object" - "an empty string is not null" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 518 - type.json: "null type matches only the null object" - "an object is not null" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 519 - type.json: "null type matches only the null object" - "an array is not null" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 520 - type.json: "null type matches only the null object" - "true is not null" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 521 - type.json: "null type matches only the null object" - "false is not null" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 522 - type.json: "null type matches only the null object" - "null is null" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 523 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 524 - type.json: "multiple types can be specified in an array" - "a string is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 525 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not one of integer, string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not one of integer, string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 526 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not one of integer, string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got object, not one of integer, string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 527 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not one of integer, string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got array, not one of integer, string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 528 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not one of integer, string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got boolean, not one of integer, string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 529 - type.json: "multiple types can be specified in an array" - "null is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not one of integer, string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not one of integer, string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 530 - type.json: "type as array with one item" - "string is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 531 - type.json: "type as array with one item" - "number is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not one of string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not one of string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 532 - type.json: "type: array or object" - "array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 533 - type.json: "type: array or object" - "object is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 534 - type.json: "type: array or object" - "number is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not one of array, object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not one of array, object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 535 - type.json: "type: array or object" - "string is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not one of array, object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not one of array, object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 536 - type.json: "type: array or object" - "null is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not one of array, object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got null, not one of array, object", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 537 - type.json: "type: array, object or null" - "array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 538 - type.json: "type: array, object or null" - "object is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 539 - type.json: "type: array, object or null" - "null is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 540 - type.json: "type: array, object or null" - "number is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not one of array, object, null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not one of array, object, null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 541 - type.json: "type: array, object or null" - "string is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not one of array, object, null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not one of array, object, null", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 542 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 543 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 544 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 2 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 2 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 545 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 546 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 547 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 548 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 549 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 2 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 2 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 550 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 551 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 552 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 553 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 554 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 555 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 556 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 557 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 2 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 2 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 558 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 559 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 560 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 561 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 562 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 563 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 564 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 565 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 4 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 4 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 566 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 567 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 568 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 569 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 570 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 571 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 572 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 573 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 574 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 575 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 576 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 2 and 3 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 2 and 3 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 577 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 2 and 3 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 2 and 3 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 578 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 579 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 580 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 581 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "items at indices 0 and 1 are not unique", 101s # "instanceLocation": "", 101s # "keywordLocation": "/uniqueItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 582 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/2", 101s # "keywordLocation": "/additionalItems" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/2", 101s # "keywordLocation": "/additionalItems" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 583 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 584 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 585 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 586 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 587 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 588 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 589 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 590 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 591 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 592 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 593 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 594 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 595 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 596 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 597 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 598 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 599 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 600 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 601 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 602 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 603 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 604 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 605 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 606 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 607 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 608 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 609 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 610 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/2", 101s # "keywordLocation": "/additionalItems" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional item not permitted", 101s # "instanceLocation": "/2", 101s # "keywordLocation": "/additionalItems" 101s # }, 101s # { 101s # "error": "subschema is not valid against all additional items", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalItems" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 611 - optional/bignum.json: "integer" - "a bignum is an integer" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 612 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 613 - optional/bignum.json: "number" - "a bignum is a number" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 614 - optional/bignum.json: "number" - "a negative bignum is a number" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 615 - optional/bignum.json: "string" - "a bignum is not a string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got integer, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 616 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 617 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maximum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 101s # "instanceLocation": "", 101s # "keywordLocation": "/maximum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 618 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 619 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 101s # "instanceLocation": "", 101s # "keywordLocation": "/minimum" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 620 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 621 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 622 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 623 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 624 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 625 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 626 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 627 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 628 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true # 101s 1..1 101s } 101s ok 629 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected false; got true 101s # schema: { 101s # "pattern": "^\\d$", 101s # "type": "string" 101s # } 101s # data: "߀" 101s # result: 1 101s 1..1 101s } 101s ok 630 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO (as \u escape) does not match" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected false; got true 101s # schema: { 101s # "pattern": "^\\d$", 101s # "type": "string" 101s # } 101s # data: "߀" 101s # result: 1 101s 1..1 101s } 101s ok 631 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false # 101s 1..1 101s } 101s ok 632 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected true; got false 101s # schema: { 101s # "pattern": "^\\D$", 101s # "type": "string" 101s # } 101s # data: "߀" 101s # result: 0 101s 1..1 101s } 101s ok 633 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO (as \u escape) matches" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected true; got false 101s # schema: { 101s # "pattern": "^\\D$", 101s # "type": "string" 101s # } 101s # data: "߀" 101s # result: 0 101s 1..1 101s } 101s ok 634 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true # 101s 1..1 101s } 101s ok 635 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "latin-1 e-acute does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected false; got true 101s # schema: { 101s # "pattern": "^\\w$", 101s # "type": "string" 101s # } 101s # data: "é" 101s # result: 1 101s 1..1 101s } 101s ok 636 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false # 101s 1..1 101s } 101s ok 637 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "latin-1 e-acute matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected true; got false 101s # schema: { 101s # "pattern": "^\\W$", 101s # "type": "string" 101s # } 101s # data: "é" 101s # result: 0 101s 1..1 101s } 101s ok 638 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 639 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 640 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 641 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 642 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 643 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected true; got false 101s # schema: { 101s # "pattern": "^\\s$", 101s # "type": "string" 101s # } 101s # data: "" 101s # result: 0 101s 1..1 101s } 101s ok 644 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 645 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 646 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 647 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 648 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 649 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 650 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 651 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 652 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 653 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 654 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected false; got true 101s # schema: { 101s # "pattern": "^\\S$", 101s # "type": "string" 101s # } 101s # data: "" 101s # result: 1 101s 1..1 101s } 101s ok 655 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 656 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 657 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 658 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 659 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 660 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 661 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 662 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 663 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 664 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 665 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected false; got true 101s # schema: { 101s # "pattern": "\\wcole" 101s # } 101s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 101s # result: 1 101s 1..1 101s } 101s ok 666 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected false; got true 101s # schema: { 101s # "pattern": "\\wcole" 101s # } 101s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 101s # result: 1 101s 1..1 101s } 101s ok 667 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 668 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 669 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 670 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 671 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 672 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 673 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected false; got true 101s # schema: { 101s # "pattern": "^\\d+$" 101s # } 101s # data: "৪২" 101s # result: 1 101s 1..1 101s } 101s ok 674 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 675 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 676 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 677 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 678 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 679 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 680 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/L'ÉCOLE", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/L'ÉCOLE", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 681 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 682 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected false; got true 101s # schema: { 101s # "additionalProperties": false, 101s # "patternProperties": { 101s # "\\wcole": {} 101s # }, 101s # "type": "object" 101s # } 101s # data: { 101s # "l'école": "pas de vraie vie" 101s # } 101s # result: 1 101s 1..1 101s } 101s ok 683 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected false; got true 101s # schema: { 101s # "additionalProperties": false, 101s # "patternProperties": { 101s # "\\wcole": {} 101s # }, 101s # "type": "object" 101s # } 101s # data: { 101s # "l'école": "pas de vraie vie" 101s # } 101s # result: 1 101s 1..1 101s } 101s ok 684 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/L'ÉCOLE", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/L'ÉCOLE", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 685 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/l'école", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/l'école", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 686 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/l'école", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/l'école", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 687 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 688 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 689 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/-%#", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/-%#", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 690 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft4.t line 51. 101s # expected false; got true 101s # schema: { 101s # "additionalProperties": false, 101s # "patternProperties": { 101s # "^\\d+$": {} 101s # }, 101s # "type": "object" 101s # } 101s # data: { 101s # "৪২": "khajit has wares if you have coin" 101s # } 101s # result: 1 101s 1..1 101s } 101s ok 691 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 692 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/-%#", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "additional property not permitted", 101s # "instanceLocation": "/-%#", 101s # "keywordLocation": "/additionalProperties" 101s # }, 101s # { 101s # "error": "not all additional properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/additionalProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 693 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 694 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 695 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 696 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 697 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 101s # result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/$ref/enum" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "https://localhost:1234/my_identifier.json#/type", 101s # "error": "got integer, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/1/$ref/type" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 101s # "error": "value does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/0/$ref/enum" 101s # }, 101s # { 101s # "absoluteKeywordLocation": "https://localhost:1234/my_identifier.json#/type", 101s # "error": "got integer, not string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf/1/$ref/type" 101s # }, 101s # { 101s # "error": "no subschemas are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/anyOf" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 698 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 699 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 700 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 701 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 702 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 703 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 704 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "pattern does not match", 101s # "instanceLocation": "", 101s # "keywordLocation": "/pattern" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 705 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 706 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 707 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 708 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/🐲", 101s # "keywordLocation": "/patternProperties/^🐲*$/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/🐲", 101s # "keywordLocation": "/patternProperties/^🐲*$/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 709 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/🐲🐲", 101s # "keywordLocation": "/patternProperties/^🐲*$/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got string, not integer", 101s # "instanceLocation": "/🐲🐲", 101s # "keywordLocation": "/patternProperties/^🐲*$/type" 101s # }, 101s # { 101s # "error": "not all properties are valid", 101s # "instanceLocation": "", 101s # "keywordLocation": "/patternProperties" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 710 - optional/zeroTerminatedFloats.json: "some languages do not distinguish between different types of numeric value" - "a float is not an integer even without fractional part" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "got number, not integer", 101s # "instanceLocation": "", 101s # "keywordLocation": "/type" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s # generated with: Test::JSON::Schema::Acceptance 1.029 101s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 101s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 101s # specification version: draft4 101s # optional tests included: yes 101s # skipping directory: optional/format 101s # 101s # filename pass todo-fail fail 101s # --------------------------------------------------------------- 101s # additionalItems.json 18 0 0 101s # additionalProperties.json 16 0 0 101s # allOf.json 27 0 0 101s # anyOf.json 15 0 0 101s # default.json 7 0 0 101s # definitions.json 2 0 0 101s # dependencies.json 29 0 0 101s # enum.json 45 0 0 101s # format.json 36 0 0 101s # infinite-loop-detection.json 2 0 0 101s # items.json 21 0 0 101s # maxItems.json 4 0 0 101s # maxLength.json 5 0 0 101s # maxProperties.json 8 0 0 101s # maximum.json 14 0 0 101s # minItems.json 4 0 0 101s # minLength.json 5 0 0 101s # minProperties.json 6 0 0 101s # minimum.json 17 0 0 101s # multipleOf.json 10 0 0 101s # not.json 20 0 0 101s # oneOf.json 23 0 0 101s # pattern.json 9 0 0 101s # patternProperties.json 18 0 0 101s # properties.json 24 0 0 101s # ref.json 45 0 0 101s # refRemote.json 17 0 0 101s # required.json 15 0 0 101s # type.json 79 0 0 101s # uniqueItems.json 69 0 0 101s # optional/bignum.json 9 0 0 101s # optional/ecmascript-regex.json 60 14 0 101s # optional/float-overflow.json 1 0 0 101s # optional/id.json 3 0 0 101s # optional/non-bmp-regex.json 12 0 0 101s # optional/zeroTerminatedFloats.json 1 0 0 101s # --------------------------------------------------------------- 101s # TOTAL 696 14 0 101s # 101s # Congratulations, all non-optional tests are passing! 101s # 101s ok 711 - no leaks in the main evaluator object 101s ok 712 - no leaks in the short-circuiting evaluator object 101s 1..712 101s ok 101s t/zzz-acceptance-draft6-format.t ........ 101s # 101s # AUTHOR_TESTING: 101s # AUTOMATED_TESTING: 1 101s # EXTENDED_TESTING: 101s # NO_TODO: 101s # TEST_DIR: 101s # NO_SHORT_CIRCUIT: 101s # 101s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft6/optional/format against draft6... 101s # 101s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid date-time string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 26 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 27 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 28 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 29 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 30 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 31 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 32 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 33 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid email string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid email string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 34 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 35 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 36 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 37 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid email string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid email string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 38 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid email string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid email string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 39 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 40 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid email string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid email string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 41 - hostname.json: "validation of host names" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 42 - hostname.json: "validation of host names" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 43 - hostname.json: "validation of host names" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 44 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 45 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 46 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 47 - hostname.json: "validation of host names" - "a valid host name" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 48 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 49 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 50 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 51 - hostname.json: "validation of host names" - "a host name with a component too long" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 52 - hostname.json: "validation of host names" - "starts with hyphen" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 53 - hostname.json: "validation of host names" - "ends with hyphen" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 54 - hostname.json: "validation of host names" - "starts with underscore" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 55 - hostname.json: "validation of host names" - "ends with underscore" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 56 - hostname.json: "validation of host names" - "contains underscore" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 57 - hostname.json: "validation of host names" - "maximum label length" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 58 - hostname.json: "validation of host names" - "exceeds maximum label length" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 59 - hostname.json: "validation of host names" - "single label" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 60 - hostname.json: "validation of host names" - "single label with hyphen" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 61 - hostname.json: "validation of host names" - "single label with digits" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 62 - hostname.json: "validation of host names" - "single label ending with digit" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 63 - hostname.json: "validation of host names" - "empty string" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 64 - hostname.json: "validation of host names" - "single dot" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid hostname string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 65 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 66 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 67 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 68 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 69 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 70 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 71 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 72 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 73 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 74 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 75 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 76 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 77 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 78 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 79 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 80 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv4 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 81 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 82 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 83 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 84 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 85 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 86 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 87 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 88 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 89 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 90 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 91 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 92 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 93 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 94 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 95 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 96 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 97 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 98 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 99 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 100 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 101 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 102 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 103 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 104 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 105 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 106 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 107 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 108 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 109 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 110 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 111 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 112 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 113 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 114 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 115 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 116 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 117 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 118 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 119 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 120 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid ipv6 string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 121 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 122 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 123 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 124 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 125 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 126 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 127 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 128 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 129 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 130 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 131 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 132 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 133 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 134 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 135 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 136 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 137 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 138 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 139 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 140 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 141 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 142 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 143 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 144 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 145 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 146 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 147 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 148 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 149 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 150 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 151 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 152 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 153 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 154 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 155 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 156 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 157 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 158 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid json-pointer string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 159 - unknown.json: "unknown format" - "unknown formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 160 - unknown.json: "unknown format" - "unknown formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 161 - unknown.json: "unknown format" - "unknown formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 162 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 163 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 164 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 165 - unknown.json: "unknown format" - "unknown formats ignore strings" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s # 101s ok 166 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 167 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 168 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 169 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 170 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 171 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 172 - uri-reference.json: "validation of URI References" - "a valid URI" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 173 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 174 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 175 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri-reference string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri-reference string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 176 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 177 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 178 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri-reference string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri-reference string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s # 101s ok 179 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true # 101s 1..1 101s } 101s ok 180 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true # 101s 1..1 101s } 101s ok 181 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true # 101s 1..1 101s } 101s ok 182 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true # 101s 1..1 101s } 101s ok 183 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true # 101s 1..1 101s } 101s ok 184 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true # 101s 1..1 101s } 101s ok 185 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true # 101s 1..1 101s } 101s ok 186 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft6-format.t line 66. 101s # expected false; got true 101s # schema: { 101s # "format": "uri-template" 101s # } 101s # data: "http://example.com/dictionary/{term:1}/{term" 101s # result: 1 101s 1..1 101s } 101s ok 187 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true # 101s 1..1 101s } 101s ok 188 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true # 101s 1..1 101s } 101s # 101s ok 189 - uri.json: "validation of URIs" - "all string formats ignore integers" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 190 - uri.json: "validation of URIs" - "all string formats ignore floats" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 191 - uri.json: "validation of URIs" - "all string formats ignore objects" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 192 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 193 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 194 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 195 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 196 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 197 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 198 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 199 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 200 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 201 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 202 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 203 - uri.json: "validation of URIs" - "a valid URL " { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 204 - uri.json: "validation of URIs" - "a valid mailto URI" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 205 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 206 - uri.json: "validation of URIs" - "a valid tel URI" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 207 - uri.json: "validation of URIs" - "a valid URN" { 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s ok 1 - test passes: data is valid: true 101s 1..1 101s } 101s ok 208 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 209 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 210 - uri.json: "validation of URIs" - "an invalid URI" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 211 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 212 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 213 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 101s # result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s # short-circuited result: { 101s # "errors": [ 101s # { 101s # "error": "not a valid uri string", 101s # "instanceLocation": "", 101s # "keywordLocation": "/format" 101s # } 101s # ], 101s # "valid": false 101s # } 101s ok 1 - test passes: data is valid: false 101s 1..1 101s } 101s ok 214 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 101s # result: { 101s # "valid": true 101s # } 101s # short-circuited result: { 101s # "valid": true 101s # } 101s not ok 1 - evaluation result is incorrect # 101s # Failed test (with amnesty) 'evaluation result is incorrect' 101s # at t/zzz-acceptance-draft6-format.t line 66. 101s # expected false; got true 101s # schema: { 101s # "format": "uri" 101s # } 101s # data: "bar,baz:foo" 101s # result: 1 101s 1..1 101s } 101s # 101s # generated with: Test::JSON::Schema::Acceptance 1.029 101s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 101s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 101s # specification version: draft6 101s # using custom test directory: /optional/format 101s # optional tests included: yes 101s # 101s # filename pass todo-fail fail 101s # --------------------------------------------------------------- 101s # date-time.json 25 0 0 101s # email.json 15 0 0 101s # hostname.json 24 0 0 101s # ipv4.json 16 0 0 101s # ipv6.json 40 0 0 101s # json-pointer.json 38 0 0 101s # unknown.json 7 0 0 101s # uri-reference.json 13 0 0 101s # uri-template.json 9 1 0 101s # uri.json 25 1 0 101s # --------------------------------------------------------------- 101s # TOTAL 212 2 0 101s # 101s # Congratulations, all non-optional tests are passing! 101s # 101s ok 215 - no leaks in the main evaluator object 101s ok 216 - no leaks in the short-circuiting evaluator object 101s 1..216 101s ok 104s t/zzz-acceptance-draft6.t ............... 104s # 104s # AUTHOR_TESTING: 104s # AUTOMATED_TESTING: 1 104s # EXTENDED_TESTING: 104s # NO_TODO: 104s # TEST_DIR: 104s # NO_SHORT_CIRCUIT: 104s # 104s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 104s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft6 against draft6... 104s # 104s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/additionalItems/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/additionalItems/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/additionalItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/additionalItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not boolean", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/additionalItems/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not boolean", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/additionalItems/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/additionalItems/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/additionalItems/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/additionalItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/additionalItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/additionalItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/élmény", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/élmény", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 37 - allOf.json: "allOf" - "allOf" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 38 - allOf.json: "allOf" - "mismatch second" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/required" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/required" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 39 - allOf.json: "allOf" - "mismatch first" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/required" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/required" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 40 - allOf.json: "allOf" - "wrong type" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/properties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/properties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 41 - allOf.json: "allOf with base schema" - "valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 42 - allOf.json: "allOf with base schema" - "mismatch base schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 43 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/required" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/required" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 44 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 104s # result: { 104s # "errors": [ 105s # { 105s # "error": "object is missing property: baz", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/1/required" 105s # }, 105s # { 105s # "error": "subschema 1 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: baz", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/1/required" 105s # }, 105s # { 105s # "error": "subschema 1 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 45 - allOf.json: "allOf with base schema" - "mismatch both" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/required" 105s # }, 105s # { 105s # "error": "object is missing property: baz", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/1/required" 105s # }, 105s # { 105s # "error": "subschemas 0, 1 are not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/required" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 46 - allOf.json: "allOf simple types" - "valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 47 - allOf.json: "allOf simple types" - "mismatch one" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than 30", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/maximum" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than 30", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/maximum" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 48 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 49 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/1" 105s # }, 105s # { 105s # "error": "subschema 1 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/1" 105s # }, 105s # { 105s # "error": "subschema 1 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 50 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0" 105s # }, 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/1" 105s # }, 105s # { 105s # "error": "subschemas 0, 1 are not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 51 - allOf.json: "allOf with one empty schema" - "any data is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 52 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 53 - allOf.json: "allOf with the first empty schema" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 54 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/1/type" 105s # }, 105s # { 105s # "error": "subschema 1 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/1/type" 105s # }, 105s # { 105s # "error": "subschema 1 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 55 - allOf.json: "allOf with the last empty schema" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 56 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/type" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/type" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 57 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 58 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/allOf/0/type" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/allOf" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/allOf/0/type" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/allOf" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 5", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 5", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 62 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 63 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 5", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 5", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 5", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/multipleOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 67 - anyOf.json: "anyOf" - "first anyOf valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 68 - anyOf.json: "anyOf" - "second anyOf valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 69 - anyOf.json: "anyOf" - "both anyOf valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 70 - anyOf.json: "anyOf" - "neither anyOf valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/type" 105s # }, 105s # { 105s # "error": "value is less than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/minimum" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/type" 105s # }, 105s # { 105s # "error": "value is less than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/minimum" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 71 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 72 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 73 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "length is greater than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/maxLength" 105s # }, 105s # { 105s # "error": "length is less than 4", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/minLength" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "length is greater than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/maxLength" 105s # }, 105s # { 105s # "error": "length is less than 4", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/minLength" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 74 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 75 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 76 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0" 105s # }, 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0" 105s # }, 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 77 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 78 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 79 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 80 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/anyOf/0/properties/bar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/properties" 105s # }, 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/anyOf/1/properties/foo/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/properties" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/anyOf/0/properties/bar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/properties" 105s # }, 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/anyOf/1/properties/foo/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/properties" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 81 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 82 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 83 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 84 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/anyOf/0/type" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/anyOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/anyOf/0/type" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/anyOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 85 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 86 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 87 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 88 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 89 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 90 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 91 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 92 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 93 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 94 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 95 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 96 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 97 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 98 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 99 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 100 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 101 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 102 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 103 - const.json: "const validation" - "same value is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 104 - const.json: "const validation" - "another value is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 105 - const.json: "const validation" - "another type is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 106 - const.json: "const with object" - "same object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 107 - const.json: "const with object" - "same object with different property order is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 108 - const.json: "const with object" - "another object is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 109 - const.json: "const with object" - "another type is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 110 - const.json: "const with array" - "same array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 111 - const.json: "const with array" - "another array item is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/0': wrong type: integer vs object)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/0': wrong type: integer vs object)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 112 - const.json: "const with array" - "array with additional items is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 113 - const.json: "const with null" - "null is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 114 - const.json: "const with null" - "not null is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 115 - const.json: "const with false does not match 0" - "false is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 116 - const.json: "const with false does not match 0" - "integer zero is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 117 - const.json: "const with false does not match 0" - "float zero is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 118 - const.json: "const with true does not match 1" - "true is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 119 - const.json: "const with true does not match 1" - "integer one is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 120 - const.json: "const with true does not match 1" - "float one is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 121 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 122 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 123 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 124 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 125 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 126 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 127 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 128 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 129 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 130 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 131 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 132 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 133 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 134 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 135 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 136 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 137 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 138 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 139 - const.json: "const with 1 does not match true" - "true is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 140 - const.json: "const with 1 does not match true" - "integer one is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 141 - const.json: "const with 1 does not match true" - "float one is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 142 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 143 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 144 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 145 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 146 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 147 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 148 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 149 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 150 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 151 - const.json: "nul characters in strings" - "match string with nul" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 152 - const.json: "nul characters in strings" - "do not match string lacking nul" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/const" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 153 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 154 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 155 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 156 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than 5", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/contains/minimum" 105s # }, 105s # { 105s # "error": "value is less than 5", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/contains/minimum" 105s # }, 105s # { 105s # "error": "value is less than 5", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/contains/minimum" 105s # }, 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than 5", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/contains/minimum" 105s # }, 105s # { 105s # "error": "value is less than 5", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/contains/minimum" 105s # }, 105s # { 105s # "error": "value is less than 5", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/contains/minimum" 105s # }, 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 157 - contains.json: "contains keyword validation" - "empty array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 158 - contains.json: "contains keyword validation" - "not array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 159 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 160 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 161 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/contains/const" 105s # }, 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/contains/const" 105s # }, 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/contains/const" 105s # }, 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/3", 105s # "keywordLocation": "/contains/const" 105s # }, 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/contains/const" 105s # }, 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/contains/const" 105s # }, 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/contains/const" 105s # }, 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/3", 105s # "keywordLocation": "/contains/const" 105s # }, 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 162 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 163 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 164 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/contains" 105s # }, 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/contains" 105s # }, 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 165 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 166 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 167 - contains.json: "items + contains" - "matches items, does not match contains" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/contains/multipleOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/contains/multipleOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/contains/multipleOf" 105s # }, 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/contains/multipleOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/contains/multipleOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/contains/multipleOf" 105s # }, 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 168 - contains.json: "items + contains" - "does not match items, matches contains" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/multipleOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/items/multipleOf" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/multipleOf" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 169 - contains.json: "items + contains" - "matches both items and contains" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 170 - contains.json: "items + contains" - "matches neither items nor contains" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/multipleOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/items/multipleOf" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # }, 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/contains/multipleOf" 105s # }, 105s # { 105s # "error": "value is not a multiple of 3", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/contains/multipleOf" 105s # }, 105s # { 105s # "error": "subschema is not valid against any item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/contains" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/multipleOf" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 171 - contains.json: "contains with null instance elements" - "allows null items" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 172 - default.json: "invalid type for default" - "valid when property is specified" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 173 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 174 - default.json: "invalid string value for default" - "valid when property is specified" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 175 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 176 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (passing)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 177 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (failing)" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than 3", 105s # "instanceLocation": "/alpha", 105s # "keywordLocation": "/properties/alpha/maximum" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than 3", 105s # "instanceLocation": "/alpha", 105s # "keywordLocation": "/properties/alpha/maximum" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 178 - default.json: "the default keyword does not do anything if the property is missing" - "missing properties are not filled in with the default" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 179 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 180 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/simpleTypes/enum", 105s # "error": "value does not match", 105s # "instanceLocation": "/definitions/foo/type", 105s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf/1/type", 105s # "error": "got integer, not array", 105s # "instanceLocation": "/definitions/foo/type", 105s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf", 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "/definitions/foo/type", 105s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/definitions/foo", 105s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/definitions/additionalProperties", 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "/definitions", 105s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/simpleTypes/enum", 105s # "error": "value does not match", 105s # "instanceLocation": "/definitions/foo/type", 105s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf/1/type", 105s # "error": "got integer, not array", 105s # "instanceLocation": "/definitions/foo/type", 105s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf", 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "/definitions/foo/type", 105s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/definitions/foo", 105s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/definitions/additionalProperties", 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "/definitions", 105s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 181 - dependencies.json: "dependencies" - "neither" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 182 - dependencies.json: "dependencies" - "nondependant" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 183 - dependencies.json: "dependencies" - "with dependency" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 184 - dependencies.json: "dependencies" - "missing dependency" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 185 - dependencies.json: "dependencies" - "ignores arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 186 - dependencies.json: "dependencies" - "ignores strings" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 187 - dependencies.json: "dependencies" - "ignores other non-objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 188 - dependencies.json: "dependencies with empty array" - "empty object" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 189 - dependencies.json: "dependencies with empty array" - "object with one property" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 190 - dependencies.json: "dependencies with empty array" - "non-object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 191 - dependencies.json: "multiple dependencies" - "neither" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 192 - dependencies.json: "multiple dependencies" - "nondependants" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 193 - dependencies.json: "multiple dependencies" - "with dependencies" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 194 - dependencies.json: "multiple dependencies" - "missing dependency" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/quux" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/quux" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 195 - dependencies.json: "multiple dependencies" - "missing other dependency" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/quux" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/quux" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 196 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: foo, bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/quux" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: foo, bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/quux" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 197 - dependencies.json: "multiple dependencies subschema" - "valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 198 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 199 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/dependencies/bar/properties/foo/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar/properties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/dependencies/bar/properties/foo/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar/properties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 200 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/dependencies/bar/properties/bar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar/properties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/dependencies/bar/properties/bar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar/properties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 201 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/dependencies/bar/properties/bar/type" 105s # }, 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/dependencies/bar/properties/foo/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar/properties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/dependencies/bar/properties/bar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar/properties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 202 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema true is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 203 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema false is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 204 - dependencies.json: "dependencies with boolean subschemas" - "object with both properties is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/bar" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 205 - dependencies.json: "dependencies with boolean subschemas" - "empty object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 206 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 207 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 208 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 209 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo\rbar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo\nbar" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo\rbar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo\nbar" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 210 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object has fewer than 4 properties", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object has fewer than 4 properties", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 211 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo\"bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo'bar/required" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo\"bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo'bar/required" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 212 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo'bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo\"bar" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo'bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo\"bar" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 213 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/dependencies/foo/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo/additionalProperties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/dependencies/foo/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo/additionalProperties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 214 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 215 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/dependencies/foo/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo/additionalProperties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/dependencies/foo/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies/foo/additionalProperties" 105s # }, 105s # { 105s # "error": "not all dependencies are satisfied", 105s # "instanceLocation": "", 105s # "keywordLocation": "/dependencies" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 216 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 217 - enum.json: "simple enum validation" - "one of the enum is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 218 - enum.json: "simple enum validation" - "something else is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 219 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 220 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 221 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 222 - enum.json: "heterogeneous enum validation" - "valid object matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 223 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 224 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 225 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 226 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 227 - enum.json: "enums in properties" - "both properties are valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 228 - enum.json: "enums in properties" - "wrong foo value" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/enum" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/enum" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 229 - enum.json: "enums in properties" - "wrong bar value" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar/enum" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar/enum" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 230 - enum.json: "enums in properties" - "missing optional property is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 231 - enum.json: "enums in properties" - "missing required property is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 232 - enum.json: "enums in properties" - "missing all properties is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 233 - enum.json: "enum with escaped characters" - "member 1 is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 234 - enum.json: "enum with escaped characters" - "member 2 is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 235 - enum.json: "enum with escaped characters" - "another string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 236 - enum.json: "enum with false does not match 0" - "false is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 237 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 238 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 239 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 240 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 241 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 242 - enum.json: "enum with true does not match 1" - "true is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 243 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 244 - enum.json: "enum with true does not match 1" - "float one is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 245 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 246 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 247 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 248 - enum.json: "enum with 0 does not match false" - "false is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 249 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 250 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 251 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 252 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 253 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 254 - enum.json: "enum with 1 does not match true" - "true is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 255 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 256 - enum.json: "enum with 1 does not match true" - "float one is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 257 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 258 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 259 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 260 - enum.json: "nul characters in strings" - "match string with nul" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 261 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 262 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 263 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than or equal to 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMaximum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than or equal to 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMaximum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 264 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than or equal to 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMaximum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than or equal to 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMaximum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 265 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 266 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 267 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than or equal to 1.1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMinimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than or equal to 1.1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMinimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 268 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than or equal to 1.1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMinimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than or equal to 1.1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMinimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 269 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 270 - format.json: "email format" - "all string formats ignore integers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 271 - format.json: "email format" - "all string formats ignore floats" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 272 - format.json: "email format" - "all string formats ignore objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 273 - format.json: "email format" - "all string formats ignore arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 274 - format.json: "email format" - "all string formats ignore booleans" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 275 - format.json: "email format" - "all string formats ignore nulls" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 276 - format.json: "ipv4 format" - "all string formats ignore integers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 277 - format.json: "ipv4 format" - "all string formats ignore floats" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 278 - format.json: "ipv4 format" - "all string formats ignore objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 279 - format.json: "ipv4 format" - "all string formats ignore arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 280 - format.json: "ipv4 format" - "all string formats ignore booleans" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 281 - format.json: "ipv4 format" - "all string formats ignore nulls" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 282 - format.json: "ipv6 format" - "all string formats ignore integers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 283 - format.json: "ipv6 format" - "all string formats ignore floats" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 284 - format.json: "ipv6 format" - "all string formats ignore objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 285 - format.json: "ipv6 format" - "all string formats ignore arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 286 - format.json: "ipv6 format" - "all string formats ignore booleans" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 287 - format.json: "ipv6 format" - "all string formats ignore nulls" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 288 - format.json: "hostname format" - "all string formats ignore integers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 289 - format.json: "hostname format" - "all string formats ignore floats" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 290 - format.json: "hostname format" - "all string formats ignore objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 291 - format.json: "hostname format" - "all string formats ignore arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 292 - format.json: "hostname format" - "all string formats ignore booleans" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 293 - format.json: "hostname format" - "all string formats ignore nulls" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 294 - format.json: "date-time format" - "all string formats ignore integers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 295 - format.json: "date-time format" - "all string formats ignore floats" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 296 - format.json: "date-time format" - "all string formats ignore objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 297 - format.json: "date-time format" - "all string formats ignore arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 298 - format.json: "date-time format" - "all string formats ignore booleans" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 299 - format.json: "date-time format" - "all string formats ignore nulls" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 300 - format.json: "json-pointer format" - "all string formats ignore integers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 301 - format.json: "json-pointer format" - "all string formats ignore floats" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 302 - format.json: "json-pointer format" - "all string formats ignore objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 303 - format.json: "json-pointer format" - "all string formats ignore arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 304 - format.json: "json-pointer format" - "all string formats ignore booleans" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 305 - format.json: "json-pointer format" - "all string formats ignore nulls" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 306 - format.json: "uri format" - "all string formats ignore integers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 307 - format.json: "uri format" - "all string formats ignore floats" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 308 - format.json: "uri format" - "all string formats ignore objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 309 - format.json: "uri format" - "all string formats ignore arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 310 - format.json: "uri format" - "all string formats ignore booleans" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 311 - format.json: "uri format" - "all string formats ignore nulls" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 312 - format.json: "uri-reference format" - "all string formats ignore integers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 313 - format.json: "uri-reference format" - "all string formats ignore floats" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 314 - format.json: "uri-reference format" - "all string formats ignore objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 315 - format.json: "uri-reference format" - "all string formats ignore arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 316 - format.json: "uri-reference format" - "all string formats ignore booleans" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 317 - format.json: "uri-reference format" - "all string formats ignore nulls" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 318 - format.json: "uri-template format" - "all string formats ignore integers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 319 - format.json: "uri-template format" - "all string formats ignore floats" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 320 - format.json: "uri-template format" - "all string formats ignore objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 321 - format.json: "uri-template format" - "all string formats ignore arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 322 - format.json: "uri-template format" - "all string formats ignore booleans" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 323 - format.json: "uri-template format" - "all string formats ignore nulls" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 324 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "passing case" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 325 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "failing case" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/int/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/int/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/1/additionalProperties" 105s # }, 105s # { 105s # "error": "subschemas 0, 1 are not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/int/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/properties" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 326 - items.json: "a schema given for items" - "valid items" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 327 - items.json: "a schema given for items" - "wrong type of items" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/items/type" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/items/type" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 328 - items.json: "a schema given for items" - "ignores non-arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 329 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 330 - items.json: "an array of schemas for items" - "correct types" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 331 - items.json: "an array of schemas for items" - "wrong types" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/0/type" 105s # }, 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/items/1/type" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/0/type" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 332 - items.json: "an array of schemas for items" - "incomplete array of items" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 333 - items.json: "an array of schemas for items" - "array with additional items" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 334 - items.json: "an array of schemas for items" - "empty array" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 335 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 336 - items.json: "items with boolean schema (true)" - "any array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 337 - items.json: "items with boolean schema (true)" - "empty array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 338 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "item not permitted", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items" 105s # }, 105s # { 105s # "error": "item not permitted", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/items" 105s # }, 105s # { 105s # "error": "item not permitted", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "item not permitted", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 339 - items.json: "items with boolean schema (false)" - "empty array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 340 - items.json: "items with boolean schemas" - "array with one item is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 341 - items.json: "items with boolean schemas" - "array with two items is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "item not permitted", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/items/1" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "item not permitted", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/items/1" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 342 - items.json: "items with boolean schemas" - "empty array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 343 - items.json: "items and subitems" - "valid items" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 344 - items.json: "items and subitems" - "too many items" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional item not permitted", 105s # "instanceLocation": "/3", 105s # "keywordLocation": "/additionalItems" 105s # }, 105s # { 105s # "error": "subschema is not valid against all additional items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional item not permitted", 105s # "instanceLocation": "/3", 105s # "keywordLocation": "/additionalItems" 105s # }, 105s # { 105s # "error": "subschema is not valid against all additional items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 345 - items.json: "items and subitems" - "too many sub-items" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 105s # "error": "additional item not permitted", 105s # "instanceLocation": "/0/2", 105s # "keywordLocation": "/items/0/$ref/additionalItems" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 105s # "error": "subschema is not valid against all additional items", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/0/$ref/additionalItems" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 105s # "error": "additional item not permitted", 105s # "instanceLocation": "/0/2", 105s # "keywordLocation": "/items/0/$ref/additionalItems" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 105s # "error": "subschema is not valid against all additional items", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/0/$ref/additionalItems" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 346 - items.json: "items and subitems" - "wrong item" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/item/type", 105s # "error": "got object, not array", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/0/$ref/type" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/item/type", 105s # "error": "got object, not array", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/0/$ref/type" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 347 - items.json: "items and subitems" - "wrong sub-item" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "/0/0", 105s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/item/items", 105s # "error": "not all items are valid", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/0/$ref/items" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "/0/0", 105s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/item/items", 105s # "error": "not all items are valid", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/0/$ref/items" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 348 - items.json: "items and subitems" - "fewer items is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 349 - items.json: "nested items" - "valid nested array" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 350 - items.json: "nested items" - "nested array with invalid type" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "/0/0/0/0", 105s # "keywordLocation": "/items/items/items/items/type" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0/0/0", 105s # "keywordLocation": "/items/items/items/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0/0", 105s # "keywordLocation": "/items/items/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "/0/0/0/0", 105s # "keywordLocation": "/items/items/items/items/type" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0/0/0", 105s # "keywordLocation": "/items/items/items/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0/0", 105s # "keywordLocation": "/items/items/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 351 - items.json: "nested items" - "not deep enough" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not array", 105s # "instanceLocation": "/0/0/0", 105s # "keywordLocation": "/items/items/items/type" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0/0", 105s # "keywordLocation": "/items/items/items" 105s # }, 105s # { 105s # "error": "got integer, not array", 105s # "instanceLocation": "/0/1/0", 105s # "keywordLocation": "/items/items/items/type" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0/1", 105s # "keywordLocation": "/items/items/items" 105s # }, 105s # { 105s # "error": "got integer, not array", 105s # "instanceLocation": "/0/2/0", 105s # "keywordLocation": "/items/items/items/type" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0/2", 105s # "keywordLocation": "/items/items/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/items" 105s # }, 105s # { 105s # "error": "got integer, not array", 105s # "instanceLocation": "/1/0/0", 105s # "keywordLocation": "/items/items/items/type" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/1/0", 105s # "keywordLocation": "/items/items/items" 105s # }, 105s # { 105s # "error": "got integer, not array", 105s # "instanceLocation": "/1/1/0", 105s # "keywordLocation": "/items/items/items/type" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/1/1", 105s # "keywordLocation": "/items/items/items" 105s # }, 105s # { 105s # "error": "got integer, not array", 105s # "instanceLocation": "/1/2/0", 105s # "keywordLocation": "/items/items/items/type" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/1/2", 105s # "keywordLocation": "/items/items/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/items/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not array", 105s # "instanceLocation": "/0/0/0", 105s # "keywordLocation": "/items/items/items/type" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0/0", 105s # "keywordLocation": "/items/items/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/items" 105s # }, 105s # { 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 352 - items.json: "single-form items with null instance elements" - "allows null elements" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 353 - items.json: "array-form items with null instance elements" - "allows null elements" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 354 - maxItems.json: "maxItems validation" - "shorter is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 355 - maxItems.json: "maxItems validation" - "exact length is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 356 - maxItems.json: "maxItems validation" - "too long is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "array has more than 2 items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "array has more than 2 items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 357 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 358 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 359 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "array has more than 2 items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "array has more than 2 items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 360 - maxLength.json: "maxLength validation" - "shorter is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 361 - maxLength.json: "maxLength validation" - "exact length is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 362 - maxLength.json: "maxLength validation" - "too long is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "length is greater than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxLength" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "length is greater than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxLength" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 363 - maxLength.json: "maxLength validation" - "ignores non-strings" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 364 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 365 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 366 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "length is greater than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxLength" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "length is greater than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxLength" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 367 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 368 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 369 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object has more than 2 properties", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object has more than 2 properties", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 370 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 371 - maxProperties.json: "maxProperties validation" - "ignores strings" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 372 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 373 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 374 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object has more than 2 properties", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object has more than 2 properties", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 375 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 376 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object has more than 0 property", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object has more than 0 property", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maxProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 377 - maximum.json: "maximum validation" - "below the maximum is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 378 - maximum.json: "maximum validation" - "boundary point is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 379 - maximum.json: "maximum validation" - "above the maximum is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maximum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than 3", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maximum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 380 - maximum.json: "maximum validation" - "ignores non-numbers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 381 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 382 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 383 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 384 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than 300", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maximum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than 300", 105s # "instanceLocation": "", 105s # "keywordLocation": "/maximum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 385 - minItems.json: "minItems validation" - "longer is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 386 - minItems.json: "minItems validation" - "exact length is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 387 - minItems.json: "minItems validation" - "too short is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "array has fewer than 1 item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "array has fewer than 1 item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 388 - minItems.json: "minItems validation" - "ignores non-arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 389 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 390 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "array has fewer than 1 item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "array has fewer than 1 item", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 391 - minLength.json: "minLength validation" - "longer is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 392 - minLength.json: "minLength validation" - "exact length is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 393 - minLength.json: "minLength validation" - "too short is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "length is less than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minLength" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "length is less than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minLength" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 394 - minLength.json: "minLength validation" - "ignores non-strings" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 395 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "length is less than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minLength" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "length is less than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minLength" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 396 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 397 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "length is less than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minLength" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "length is less than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minLength" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 398 - minProperties.json: "minProperties validation" - "longer is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 399 - minProperties.json: "minProperties validation" - "exact length is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 400 - minProperties.json: "minProperties validation" - "too short is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object has fewer than 1 property", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object has fewer than 1 property", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 401 - minProperties.json: "minProperties validation" - "ignores arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 402 - minProperties.json: "minProperties validation" - "ignores strings" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 403 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 404 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 405 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object has fewer than 1 property", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object has fewer than 1 property", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 406 - minimum.json: "minimum validation" - "above the minimum is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 407 - minimum.json: "minimum validation" - "boundary point is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 408 - minimum.json: "minimum validation" - "below the minimum is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than 1.1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than 1.1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 409 - minimum.json: "minimum validation" - "ignores non-numbers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 410 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 411 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 412 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 413 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 414 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than -2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than -2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 415 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than -2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than -2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/minimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 416 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 417 - multipleOf.json: "by int" - "int by int" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 418 - multipleOf.json: "by int" - "int by int fail" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/multipleOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/multipleOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 419 - multipleOf.json: "by int" - "ignores non-numbers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 420 - multipleOf.json: "by number" - "zero is multiple of anything" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 421 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 422 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 1.5", 105s # "instanceLocation": "", 105s # "keywordLocation": "/multipleOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 1.5", 105s # "instanceLocation": "", 105s # "keywordLocation": "/multipleOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 423 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 424 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 0.0001", 105s # "instanceLocation": "", 105s # "keywordLocation": "/multipleOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 0.0001", 105s # "instanceLocation": "", 105s # "keywordLocation": "/multipleOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 425 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 0.123456789", 105s # "instanceLocation": "", 105s # "keywordLocation": "/multipleOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is not a multiple of 0.123456789", 105s # "instanceLocation": "", 105s # "keywordLocation": "/multipleOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 426 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 427 - not.json: "not" - "allowed" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 428 - not.json: "not" - "disallowed" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 429 - not.json: "not multiple types" - "valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 430 - not.json: "not multiple types" - "mismatch" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 431 - not.json: "not multiple types" - "other mismatch" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 432 - not.json: "not more complex schema" - "match" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 433 - not.json: "not more complex schema" - "other match" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 434 - not.json: "not more complex schema" - "mismatch" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 435 - not.json: "forbidden property" - "property present" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/not" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/not" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 436 - not.json: "forbidden property" - "property absent" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 437 - not.json: "forbid everything with empty schema" - "number is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 438 - not.json: "forbid everything with empty schema" - "string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 439 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 440 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 441 - not.json: "forbid everything with empty schema" - "null is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 442 - not.json: "forbid everything with empty schema" - "object is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 443 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 444 - not.json: "forbid everything with empty schema" - "array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 445 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 446 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 447 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 448 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 449 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 450 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 451 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 452 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 453 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 454 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is true", 105s # "instanceLocation": "", 105s # "keywordLocation": "/not" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 455 - not.json: "allow everything with boolean schema false" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 456 - not.json: "allow everything with boolean schema false" - "string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 457 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 458 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 459 - not.json: "allow everything with boolean schema false" - "null is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 460 - not.json: "allow everything with boolean schema false" - "object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 461 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 462 - not.json: "allow everything with boolean schema false" - "array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 463 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 464 - not.json: "double negation" - "any value is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 465 - oneOf.json: "oneOf" - "first oneOf valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 466 - oneOf.json: "oneOf" - "second oneOf valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 467 - oneOf.json: "oneOf" - "both oneOf valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 468 - oneOf.json: "oneOf" - "neither oneOf valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/type" 105s # }, 105s # { 105s # "error": "value is less than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/minimum" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/type" 105s # }, 105s # { 105s # "error": "value is less than 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/minimum" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 469 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # }, 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 470 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 471 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 472 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1, 2", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 473 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 474 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 475 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0" 105s # }, 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1" 105s # }, 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/2" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0" 105s # }, 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1" 105s # }, 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/2" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 476 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 477 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 478 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 479 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/oneOf/0/properties/bar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/properties" 105s # }, 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/oneOf/1/properties/foo/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/properties" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/oneOf/0/properties/bar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/properties" 105s # }, 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/oneOf/1/properties/foo/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/properties" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 480 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 481 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 482 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/required" 105s # }, 105s # { 105s # "error": "object is missing properties: foo, baz", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/required" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/required" 105s # }, 105s # { 105s # "error": "object is missing properties: foo, baz", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/required" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 483 - oneOf.json: "oneOf with required" - "first valid - valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 484 - oneOf.json: "oneOf with required" - "second valid - valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 485 - oneOf.json: "oneOf with required" - "both valid - invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 486 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 487 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 488 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "multiple subschemas are valid: 0, 1", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 489 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/required" 105s # }, 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/required" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: bar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/required" 105s # }, 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/required" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 490 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 491 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/oneOf/0/type" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/oneOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/oneOf/0/type" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/oneOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 492 - pattern.json: "pattern validation" - "a matching pattern is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 493 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 494 - pattern.json: "pattern validation" - "ignores booleans" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 495 - pattern.json: "pattern validation" - "ignores integers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 496 - pattern.json: "pattern validation" - "ignores floats" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 497 - pattern.json: "pattern validation" - "ignores objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 498 - pattern.json: "pattern validation" - "ignores arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 499 - pattern.json: "pattern validation" - "ignores null" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 500 - pattern.json: "pattern is not anchored" - "matches a substring" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 501 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 502 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 503 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/patternProperties/f.*o/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/patternProperties/f.*o/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 504 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/patternProperties/f.*o/type" 105s # }, 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/foooooo", 105s # "keywordLocation": "/patternProperties/f.*o/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/patternProperties/f.*o/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 505 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 506 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 507 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 508 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 509 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 510 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 511 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/a", 105s # "keywordLocation": "/patternProperties/a*/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/a", 105s # "keywordLocation": "/patternProperties/a*/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 512 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than 20", 105s # "instanceLocation": "/aaaa", 105s # "keywordLocation": "/patternProperties/aaa*/maximum" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than 20", 105s # "instanceLocation": "/aaaa", 105s # "keywordLocation": "/patternProperties/aaa*/maximum" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 513 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/aaa", 105s # "keywordLocation": "/patternProperties/a*/type" 105s # }, 105s # { 105s # "error": "value is greater than 20", 105s # "instanceLocation": "/aaaa", 105s # "keywordLocation": "/patternProperties/aaa*/maximum" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/aaa", 105s # "keywordLocation": "/patternProperties/a*/type" 105s # }, 105s # { 105s # "error": "value is greater than 20", 105s # "instanceLocation": "/aaaa", 105s # "keywordLocation": "/patternProperties/aaa*/maximum" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 514 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 515 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not boolean", 105s # "instanceLocation": "/a31b", 105s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not boolean", 105s # "instanceLocation": "/a31b", 105s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 516 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 517 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "/a_X_3", 105s # "keywordLocation": "/patternProperties/X_/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "/a_X_3", 105s # "keywordLocation": "/patternProperties/X_/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 518 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 519 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "property not permitted", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/patternProperties/b.*" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "property not permitted", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/patternProperties/b.*" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 520 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "property not permitted", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/patternProperties/b.*" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "property not permitted", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/patternProperties/b.*" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 521 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "property not permitted", 105s # "instanceLocation": "/foobar", 105s # "keywordLocation": "/patternProperties/b.*" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "property not permitted", 105s # "instanceLocation": "/foobar", 105s # "keywordLocation": "/patternProperties/b.*" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 522 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 523 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 524 - properties.json: "object properties validation" - "both properties present and valid is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 525 - properties.json: "object properties validation" - "one property invalid is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not string", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not string", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 526 - properties.json: "object properties validation" - "both properties invalid is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not string", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar/type" 105s # }, 105s # { 105s # "error": "got array, not integer", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not string", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 527 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 528 - properties.json: "object properties validation" - "ignores arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 529 - properties.json: "object properties validation" - "ignores other non-objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 530 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 531 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "array has more than 3 items", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/maxItems" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "array has more than 3 items", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/maxItems" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 532 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "array has fewer than 2 items", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/patternProperties/f.o/minItems" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "array has fewer than 2 items", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/patternProperties/f.o/minItems" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 533 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 534 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "array has fewer than 2 items", 105s # "instanceLocation": "/fxo", 105s # "keywordLocation": "/patternProperties/f.o/minItems" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "array has fewer than 2 items", 105s # "instanceLocation": "/fxo", 105s # "keywordLocation": "/patternProperties/f.o/minItems" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 535 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 536 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 537 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/quux", 105s # "keywordLocation": "/additionalProperties/type" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/quux", 105s # "keywordLocation": "/additionalProperties/type" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 538 - properties.json: "properties with boolean schema" - "no property present is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 539 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 540 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "property not permitted", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "property not permitted", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 541 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "property not permitted", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "property not permitted", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 542 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 543 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "/foo\tbar", 105s # "keywordLocation": "/properties/foo\tbar/type" 105s # }, 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "/foo\nbar", 105s # "keywordLocation": "/properties/foo\nbar/type" 105s # }, 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "/foo\fbar", 105s # "keywordLocation": "/properties/foo\fbar/type" 105s # }, 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "/foo\rbar", 105s # "keywordLocation": "/properties/foo\rbar/type" 105s # }, 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "/foo\"bar", 105s # "keywordLocation": "/properties/foo\"bar/type" 105s # }, 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "/foo\\bar", 105s # "keywordLocation": "/properties/foo\\bar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "/foo\tbar", 105s # "keywordLocation": "/properties/foo\tbar/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 544 - properties.json: "properties with null valued instance properties" - "allows null values" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 545 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 546 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 547 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 548 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "/__proto__", 105s # "keywordLocation": "/properties/__proto__/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "/__proto__", 105s # "keywordLocation": "/properties/__proto__/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 549 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "/toString/length", 105s # "keywordLocation": "/properties/toString/properties/length/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/toString", 105s # "keywordLocation": "/properties/toString/properties" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "/toString/length", 105s # "keywordLocation": "/properties/toString/properties/length/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/toString", 105s # "keywordLocation": "/properties/toString/properties" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 550 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not number", 105s # "instanceLocation": "/constructor", 105s # "keywordLocation": "/properties/constructor/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not number", 105s # "instanceLocation": "/constructor", 105s # "keywordLocation": "/properties/constructor/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 551 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 552 - propertyNames.json: "propertyNames validation" - "all property names valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 553 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "length is greater than 3", 105s # "instanceLocation": "/foobar", 105s # "keywordLocation": "/propertyNames/maxLength" 105s # }, 105s # { 105s # "error": "not all property names are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/propertyNames" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "length is greater than 3", 105s # "instanceLocation": "/foobar", 105s # "keywordLocation": "/propertyNames/maxLength" 105s # }, 105s # { 105s # "error": "not all property names are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/propertyNames" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 554 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 555 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 556 - propertyNames.json: "propertyNames validation" - "ignores strings" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 557 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 558 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 559 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "/aaA", 105s # "keywordLocation": "/propertyNames/pattern" 105s # }, 105s # { 105s # "error": "not all property names are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/propertyNames" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "/aaA", 105s # "keywordLocation": "/propertyNames/pattern" 105s # }, 105s # { 105s # "error": "not all property names are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/propertyNames" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 560 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 561 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 562 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 563 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/propertyNames" 105s # }, 105s # { 105s # "error": "not all property names are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/propertyNames" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "subschema is false", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/propertyNames" 105s # }, 105s # { 105s # "error": "not all property names are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/propertyNames" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 564 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 565 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 566 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/propertyNames/const" 105s # }, 105s # { 105s # "error": "not all property names are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/propertyNames" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/propertyNames/const" 105s # }, 105s # { 105s # "error": "not all property names are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/propertyNames" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 567 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 568 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 569 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 570 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/baz", 105s # "keywordLocation": "/propertyNames/enum" 105s # }, 105s # { 105s # "error": "not all property names are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/propertyNames" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "/baz", 105s # "keywordLocation": "/propertyNames/enum" 105s # }, 105s # { 105s # "error": "not all property names are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/propertyNames" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 571 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 572 - ref.json: "root pointer ref" - "match" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 573 - ref.json: "root pointer ref" - "recursive match" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 574 - ref.json: "root pointer ref" - "mismatch" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 575 - ref.json: "root pointer ref" - "recursive mismatch" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/additionalProperties", 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/foo/bar", 105s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/additionalProperties", 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/additionalProperties", 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/foo/bar", 105s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/additionalProperties", 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 576 - ref.json: "relative pointer ref to object" - "match" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 577 - ref.json: "relative pointer ref to object" - "mismatch" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/properties/foo/type", 105s # "error": "got boolean, not integer", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/properties/foo/type", 105s # "error": "got boolean, not integer", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/properties/bar/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 578 - ref.json: "relative pointer ref to array" - "match array" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 579 - ref.json: "relative pointer ref to array" - "mismatch array" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/items/0/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/items/1/$ref/type" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/items/0/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/1", 105s # "keywordLocation": "/items/1/$ref/type" 105s # }, 105s # { 105s # "error": "not all items are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 580 - ref.json: "escaped pointer ref" - "slash invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/slash", 105s # "keywordLocation": "/properties/slash/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/slash", 105s # "keywordLocation": "/properties/slash/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 581 - ref.json: "escaped pointer ref" - "tilde invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/tilde", 105s # "keywordLocation": "/properties/tilde/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/tilde", 105s # "keywordLocation": "/properties/tilde/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 582 - ref.json: "escaped pointer ref" - "percent invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/percent", 105s # "keywordLocation": "/properties/percent/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/percent", 105s # "keywordLocation": "/properties/percent/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 583 - ref.json: "escaped pointer ref" - "slash valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 584 - ref.json: "escaped pointer ref" - "tilde valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 585 - ref.json: "escaped pointer ref" - "percent valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 586 - ref.json: "nested refs" - "nested ref valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 587 - ref.json: "nested refs" - "nested ref invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/a/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/a/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 588 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 589 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 590 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/reffed/type", 105s # "error": "got string, not array", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/reffed/type", 105s # "error": "got string, not array", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 591 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 592 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 593 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 594 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeInteger/minimum", 105s # "error": "value is less than 0", 105s # "instanceLocation": "/minLength", 105s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeIntegerDefault0/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "/minLength", 105s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeInteger/minimum", 105s # "error": "value is less than 0", 105s # "instanceLocation": "/minLength", 105s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeIntegerDefault0/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "/minLength", 105s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 595 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 596 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "/$ref", 105s # "keywordLocation": "/properties/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "/$ref", 105s # "keywordLocation": "/properties/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 597 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 598 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/is-string/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/$ref", 105s # "keywordLocation": "/properties/$ref/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/is-string/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/$ref", 105s # "keywordLocation": "/properties/$ref/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 599 - ref.json: "$ref to boolean schema true" - "any value is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 600 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/bool", 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/bool", 105s # "error": "subschema is false", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 601 - ref.json: "Recursive references between schemas" - "valid tree" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 602 - ref.json: "Recursive references between schemas" - "invalid tree" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 105s # "error": "got string, not number", 105s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 105s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/nodes/0/subtree/nodes/0", 105s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/nodes/0/subtree/nodes", 105s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/nodes/0/subtree", 105s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/nodes/0", 105s # "keywordLocation": "/properties/nodes/items/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/nodes", 105s # "keywordLocation": "/properties/nodes/items" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 105s # "error": "got string, not number", 105s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 105s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/nodes/0/subtree/nodes/0", 105s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/nodes/0/subtree/nodes", 105s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/nodes/0/subtree", 105s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/nodes/0", 105s # "keywordLocation": "/properties/nodes/items/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/nodes", 105s # "keywordLocation": "/properties/nodes/items" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 603 - ref.json: "refs with quote" - "object with numbers is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 604 - ref.json: "refs with quote" - "object with strings is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 105s # "error": "got string, not number", 105s # "instanceLocation": "/foo\"bar", 105s # "keywordLocation": "/properties/foo\"bar/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 105s # "error": "got string, not number", 105s # "instanceLocation": "/foo\"bar", 105s # "keywordLocation": "/properties/foo\"bar/$ref/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 605 - ref.json: "Location-independent identifier" - "match" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 606 - ref.json: "Location-independent identifier" - "mismatch" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/A/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/A/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 607 - ref.json: "Reference an anchor with a non-relative URI" - "match" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 608 - ref.json: "Reference an anchor with a non-relative URI" - "mismatch" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 609 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 610 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 611 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 612 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/enum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 613 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 614 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo/bar", 105s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo/bar", 105s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 615 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 616 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 617 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo/bar", 105s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo/bar", 105s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 618 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 619 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 620 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 621 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 105s # "error": "value is less than 30", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/minimum" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 105s # "error": "value is less than 30", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/minimum" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 622 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 623 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 624 - ref.json: "URN base URI with NSS" - "a string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 625 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 626 - ref.json: "URN base URI with r-component" - "a string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 627 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 628 - ref.json: "URN base URI with q-component" - "a string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 629 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 630 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 631 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 632 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 633 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/foo", 105s # "keywordLocation": "/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 634 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 635 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 636 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 637 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 638 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 639 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 640 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 641 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions//definitions//type", 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions//definitions//type", 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/type" 105s # }, 105s # { 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 642 - refRemote.json: "remote ref" - "remote ref valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 643 - refRemote.json: "remote ref" - "remote ref invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 644 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 645 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 646 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 647 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/$ref/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/$ref/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 648 - refRemote.json: "base URI change" - "base URI change ref valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 649 - refRemote.json: "base URI change" - "base URI change ref invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/0/0", 105s # "keywordLocation": "/items/items/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/items" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/0/0", 105s # "keywordLocation": "/items/items/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/0", 105s # "keywordLocation": "/items/items" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/items" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 650 - refRemote.json: "base URI change - change folder" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 651 - refRemote.json: "base URI change - change folder" - "string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/list/0", 105s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/list", 105s # "keywordLocation": "/properties/list/$ref/items" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/list/0", 105s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/list", 105s # "keywordLocation": "/properties/list/$ref/items" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 652 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 653 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/list/0", 105s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/list", 105s # "keywordLocation": "/properties/list/$ref/items" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "/list/0", 105s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 105s # "error": "subschema is not valid against all items", 105s # "instanceLocation": "/list", 105s # "keywordLocation": "/properties/list/$ref/items" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 654 - refRemote.json: "root ref in remote ref" - "string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 655 - refRemote.json: "root ref in remote ref" - "null is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 656 - refRemote.json: "root ref in remote ref" - "object is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf/0/type", 105s # "error": "got object, not null", 105s # "instanceLocation": "/name", 105s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/type", 105s # "error": "got object, not string", 105s # "instanceLocation": "/name", 105s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf", 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "/name", 105s # "keywordLocation": "/properties/name/$ref/anyOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf/0/type", 105s # "error": "got object, not null", 105s # "instanceLocation": "/name", 105s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/type", 105s # "error": "got object, not string", 105s # "instanceLocation": "/name", 105s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf", 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "/name", 105s # "keywordLocation": "/properties/name/$ref/anyOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 657 - refRemote.json: "remote ref with ref to definitions" - "invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties/bar/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/bar", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf/0/$ref/allOf" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 105s # "error": "subschema 0 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/allOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 658 - refRemote.json: "remote ref with ref to definitions" - "valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 659 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 660 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/locationIndependentIdentifier.json#/definitions/A/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/$ref/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/locationIndependentIdentifier.json#/definitions/A/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/$ref/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 661 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/name/foo", 105s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/name", 105s # "keywordLocation": "/properties/name/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "/name/foo", 105s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "/name", 105s # "keywordLocation": "/properties/name/$ref/properties" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/properties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 662 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 663 - refRemote.json: "$ref to $ref finds location-independent $id" - "number is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 664 - refRemote.json: "$ref to $ref finds location-independent $id" - "non-number is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/detached-ref.json#/definitions/detached/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/$ref/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "http://localhost:1234/draft6/detached-ref.json#/definitions/detached/type", 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/$ref/$ref/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 665 - required.json: "required validation" - "present required property is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 666 - required.json: "required validation" - "non-present required property is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing property: foo", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 667 - required.json: "required validation" - "ignores arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 668 - required.json: "required validation" - "ignores strings" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 669 - required.json: "required validation" - "ignores other non-objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 670 - required.json: "required default validation" - "not required by default" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 671 - required.json: "required with empty array" - "property not required" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 672 - required.json: "required with escaped characters" - "object with all properties present is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 673 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 674 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 675 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 676 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: __proto__, toString, constructor", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: __proto__, toString, constructor", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 677 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: toString, constructor", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: toString, constructor", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 678 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: __proto__, constructor", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: __proto__, constructor", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 679 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: __proto__, toString", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "object is missing properties: __proto__, toString", 105s # "instanceLocation": "", 105s # "keywordLocation": "/required" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 680 - required.json: "required properties whose names are Javascript object property names" - "all present" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 681 - type.json: "integer type matches integers" - "an integer is an integer" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 682 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 683 - type.json: "integer type matches integers" - "a float is not an integer" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 684 - type.json: "integer type matches integers" - "a string is not an integer" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 685 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 686 - type.json: "integer type matches integers" - "an object is not an integer" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 687 - type.json: "integer type matches integers" - "an array is not an integer" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 688 - type.json: "integer type matches integers" - "a boolean is not an integer" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 689 - type.json: "integer type matches integers" - "null is not an integer" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not integer", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 690 - type.json: "number type matches numbers" - "an integer is a number" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 691 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 692 - type.json: "number type matches numbers" - "a float is a number" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 693 - type.json: "number type matches numbers" - "a string is not a number" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 694 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 695 - type.json: "number type matches numbers" - "an object is not a number" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 696 - type.json: "number type matches numbers" - "an array is not a number" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 697 - type.json: "number type matches numbers" - "a boolean is not a number" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 698 - type.json: "number type matches numbers" - "null is not a number" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not number", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 699 - type.json: "string type matches strings" - "1 is not a string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 700 - type.json: "string type matches strings" - "a float is not a string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 701 - type.json: "string type matches strings" - "a string is a string" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 702 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 703 - type.json: "string type matches strings" - "an empty string is still a string" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 704 - type.json: "string type matches strings" - "an object is not a string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 705 - type.json: "string type matches strings" - "an array is not a string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 706 - type.json: "string type matches strings" - "a boolean is not a string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 707 - type.json: "string type matches strings" - "null is not a string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 708 - type.json: "object type matches objects" - "an integer is not an object" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 709 - type.json: "object type matches objects" - "a float is not an object" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 710 - type.json: "object type matches objects" - "a string is not an object" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 711 - type.json: "object type matches objects" - "an object is an object" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 712 - type.json: "object type matches objects" - "an array is not an object" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 713 - type.json: "object type matches objects" - "a boolean is not an object" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 714 - type.json: "object type matches objects" - "null is not an object" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 715 - type.json: "array type matches arrays" - "an integer is not an array" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 716 - type.json: "array type matches arrays" - "a float is not an array" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 717 - type.json: "array type matches arrays" - "a string is not an array" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 718 - type.json: "array type matches arrays" - "an object is not an array" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 719 - type.json: "array type matches arrays" - "an array is an array" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 720 - type.json: "array type matches arrays" - "a boolean is not an array" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 721 - type.json: "array type matches arrays" - "null is not an array" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not array", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 722 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 723 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 724 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 725 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 726 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 727 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 728 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 729 - type.json: "boolean type matches booleans" - "true is a boolean" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 730 - type.json: "boolean type matches booleans" - "false is a boolean" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 731 - type.json: "boolean type matches booleans" - "null is not a boolean" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not boolean", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 732 - type.json: "null type matches only the null object" - "an integer is not null" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 733 - type.json: "null type matches only the null object" - "a float is not null" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 734 - type.json: "null type matches only the null object" - "zero is not null" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 735 - type.json: "null type matches only the null object" - "a string is not null" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 736 - type.json: "null type matches only the null object" - "an empty string is not null" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 737 - type.json: "null type matches only the null object" - "an object is not null" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 738 - type.json: "null type matches only the null object" - "an array is not null" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 739 - type.json: "null type matches only the null object" - "true is not null" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 740 - type.json: "null type matches only the null object" - "false is not null" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 741 - type.json: "null type matches only the null object" - "null is null" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 742 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 743 - type.json: "multiple types can be specified in an array" - "a string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 744 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not one of integer, string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got number, not one of integer, string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 745 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not one of integer, string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got object, not one of integer, string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 746 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not one of integer, string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got array, not one of integer, string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 747 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not one of integer, string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got boolean, not one of integer, string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 748 - type.json: "multiple types can be specified in an array" - "null is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not one of integer, string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not one of integer, string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 749 - type.json: "type as array with one item" - "string is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 750 - type.json: "type as array with one item" - "number is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not one of string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not one of string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 751 - type.json: "type: array or object" - "array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 752 - type.json: "type: array or object" - "object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 753 - type.json: "type: array or object" - "number is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not one of array, object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not one of array, object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 754 - type.json: "type: array or object" - "string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not one of array, object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not one of array, object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 755 - type.json: "type: array or object" - "null is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not one of array, object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got null, not one of array, object", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 756 - type.json: "type: array, object or null" - "array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 757 - type.json: "type: array, object or null" - "object is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 758 - type.json: "type: array, object or null" - "null is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 759 - type.json: "type: array, object or null" - "number is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not one of array, object, null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not one of array, object, null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 760 - type.json: "type: array, object or null" - "string is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not one of array, object, null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not one of array, object, null", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 761 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 762 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 763 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 2 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 2 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 764 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 765 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 766 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 767 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 768 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 2 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 2 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 769 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 770 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 771 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 772 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 773 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 774 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 775 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 776 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 2 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 2 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 777 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 778 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 779 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 780 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 781 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 782 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 783 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 784 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 4 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 4 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 785 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 786 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 787 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 788 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 789 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 790 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 791 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 792 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 793 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 794 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 795 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 2 and 3 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 2 and 3 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 796 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 2 and 3 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 2 and 3 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 797 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 798 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 799 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 800 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "items at indices 0 and 1 are not unique", 105s # "instanceLocation": "", 105s # "keywordLocation": "/uniqueItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 801 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional item not permitted", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/additionalItems" 105s # }, 105s # { 105s # "error": "subschema is not valid against all additional items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional item not permitted", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/additionalItems" 105s # }, 105s # { 105s # "error": "subschema is not valid against all additional items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 802 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 803 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 804 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 805 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 806 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 807 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 808 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 809 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 810 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 811 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 812 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 813 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 814 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 815 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 816 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 817 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 818 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 819 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 820 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 821 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 822 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 823 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 824 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 825 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 826 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 827 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 828 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 829 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional item not permitted", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/additionalItems" 105s # }, 105s # { 105s # "error": "subschema is not valid against all additional items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional item not permitted", 105s # "instanceLocation": "/2", 105s # "keywordLocation": "/additionalItems" 105s # }, 105s # { 105s # "error": "subschema is not valid against all additional items", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalItems" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 830 - optional/bignum.json: "integer" - "a bignum is an integer" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 831 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 832 - optional/bignum.json: "number" - "a bignum is a number" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 833 - optional/bignum.json: "number" - "a negative bignum is a number" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 834 - optional/bignum.json: "string" - "a bignum is not a string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/type" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 835 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 836 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMaximum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMaximum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 837 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 838 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMinimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 105s # "instanceLocation": "", 105s # "keywordLocation": "/exclusiveMinimum" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 839 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 840 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 841 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 842 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 843 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 844 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 845 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 846 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 847 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true # 105s 1..1 105s } 105s ok 848 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected false; got true 105s # schema: { 105s # "pattern": "^\\d$", 105s # "type": "string" 105s # } 105s # data: "߀" 105s # result: 1 105s 1..1 105s } 105s ok 849 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO (as \u escape) does not match" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected false; got true 105s # schema: { 105s # "pattern": "^\\d$", 105s # "type": "string" 105s # } 105s # data: "߀" 105s # result: 1 105s 1..1 105s } 105s ok 850 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false # 105s 1..1 105s } 105s ok 851 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected true; got false 105s # schema: { 105s # "pattern": "^\\D$", 105s # "type": "string" 105s # } 105s # data: "߀" 105s # result: 0 105s 1..1 105s } 105s ok 852 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO (as \u escape) matches" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected true; got false 105s # schema: { 105s # "pattern": "^\\D$", 105s # "type": "string" 105s # } 105s # data: "߀" 105s # result: 0 105s 1..1 105s } 105s ok 853 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true # 105s 1..1 105s } 105s ok 854 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "latin-1 e-acute does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected false; got true 105s # schema: { 105s # "pattern": "^\\w$", 105s # "type": "string" 105s # } 105s # data: "é" 105s # result: 1 105s 1..1 105s } 105s ok 855 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false # 105s 1..1 105s } 105s ok 856 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "latin-1 e-acute matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected true; got false 105s # schema: { 105s # "pattern": "^\\W$", 105s # "type": "string" 105s # } 105s # data: "é" 105s # result: 0 105s 1..1 105s } 105s ok 857 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 858 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 859 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 860 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 861 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 862 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected true; got false 105s # schema: { 105s # "pattern": "^\\s$", 105s # "type": "string" 105s # } 105s # data: "" 105s # result: 0 105s 1..1 105s } 105s ok 863 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 864 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 865 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 866 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 867 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 868 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 869 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 870 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 871 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 872 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 873 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected false; got true 105s # schema: { 105s # "pattern": "^\\S$", 105s # "type": "string" 105s # } 105s # data: "" 105s # result: 1 105s 1..1 105s } 105s ok 874 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 875 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 876 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 877 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 878 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 879 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 880 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 881 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 882 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 883 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 884 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected false; got true 105s # schema: { 105s # "pattern": "\\wcole" 105s # } 105s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 105s # result: 1 105s 1..1 105s } 105s ok 885 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected false; got true 105s # schema: { 105s # "pattern": "\\wcole" 105s # } 105s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 105s # result: 1 105s 1..1 105s } 105s ok 886 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 887 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 888 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 889 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 890 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 891 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 892 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected false; got true 105s # schema: { 105s # "pattern": "^\\d+$" 105s # } 105s # data: "৪২" 105s # result: 1 105s 1..1 105s } 105s ok 893 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 894 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 895 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 896 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 897 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 898 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 899 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/L'ÉCOLE", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/L'ÉCOLE", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 900 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 901 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected false; got true 105s # schema: { 105s # "additionalProperties": false, 105s # "patternProperties": { 105s # "\\wcole": true 105s # }, 105s # "type": "object" 105s # } 105s # data: { 105s # "l'école": "pas de vraie vie" 105s # } 105s # result: 1 105s 1..1 105s } 105s ok 902 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected false; got true 105s # schema: { 105s # "additionalProperties": false, 105s # "patternProperties": { 105s # "\\wcole": true 105s # }, 105s # "type": "object" 105s # } 105s # data: { 105s # "l'école": "pas de vraie vie" 105s # } 105s # result: 1 105s 1..1 105s } 105s ok 903 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/L'ÉCOLE", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/L'ÉCOLE", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 904 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/l'école", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/l'école", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 905 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/l'école", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/l'école", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 906 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 907 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 908 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/-%#", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/-%#", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 909 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s not ok 1 - evaluation result is incorrect # 105s # Failed test (with amnesty) 'evaluation result is incorrect' 105s # at t/zzz-acceptance-draft6.t line 51. 105s # expected false; got true 105s # schema: { 105s # "additionalProperties": false, 105s # "patternProperties": { 105s # "^\\d+$": true 105s # }, 105s # "type": "object" 105s # } 105s # data: { 105s # "৪২": "khajit has wares if you have coin" 105s # } 105s # result: 1 105s 1..1 105s } 105s ok 910 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 911 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/-%#", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "additional property not permitted", 105s # "instanceLocation": "/-%#", 105s # "keywordLocation": "/additionalProperties" 105s # }, 105s # { 105s # "error": "not all additional properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/additionalProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 912 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 913 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s # 105s ok 914 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 915 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 916 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/$ref/enum" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/$ref/type" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/$ref/enum" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/$ref/type" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 917 - optional/id.json: "non-schema object containing a plain-name $id property" - "skip traversing definition for a valid result" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 918 - optional/id.json: "non-schema object containing a plain-name $id property" - "const at const_not_anchor does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/const" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 105s # }, 105s # { 105s # "error": "subschema 1 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/allOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/const" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 105s # }, 105s # { 105s # "error": "subschema 1 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/allOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 919 - optional/id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 920 - optional/id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/const" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 105s # }, 105s # { 105s # "error": "subschema 1 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/allOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/0/const" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 105s # "error": "value does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 105s # }, 105s # { 105s # "error": "subschema 1 is not valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf/1/allOf" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/oneOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 921 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 922 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 923 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 924 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 925 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 926 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 927 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "pattern does not match", 105s # "instanceLocation": "", 105s # "keywordLocation": "/pattern" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 928 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 929 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 930 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 931 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/🐲", 105s # "keywordLocation": "/patternProperties/^🐲*$/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/🐲", 105s # "keywordLocation": "/patternProperties/^🐲*$/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 932 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 105s # result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/🐲🐲", 105s # "keywordLocation": "/patternProperties/^🐲*$/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "error": "got string, not integer", 105s # "instanceLocation": "/🐲🐲", 105s # "keywordLocation": "/patternProperties/^🐲*$/type" 105s # }, 105s # { 105s # "error": "not all properties are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/patternProperties" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s ok 933 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 105s # result: { 105s # "valid": true 105s # } 105s # short-circuited result: { 105s # "valid": true 105s # } 105s ok 1 - test passes: data is valid: true 105s 1..1 105s } 105s ok 934 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/$ref/not" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/$ref/not" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 105s # "error": "got null, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/2/$ref/type" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/$ref/not" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/$ref/not" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 105s # "error": "got null, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/2/$ref/type" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s ok 935 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 105s # result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/$ref/not" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/$ref/not" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/2/$ref/type" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s # short-circuited result: { 105s # "errors": [ 105s # { 105s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/0/$ref/not" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 105s # "error": "subschema is valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/1/$ref/not" 105s # }, 105s # { 105s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 105s # "error": "got integer, not string", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf/2/$ref/type" 105s # }, 105s # { 105s # "error": "no subschemas are valid", 105s # "instanceLocation": "", 105s # "keywordLocation": "/anyOf" 105s # } 105s # ], 105s # "valid": false 105s # } 105s ok 1 - test passes: data is valid: false 105s 1..1 105s } 105s # 105s # generated with: Test::JSON::Schema::Acceptance 1.029 105s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 105s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 105s # specification version: draft6 105s # optional tests included: yes 105s # skipping directory: optional/format 105s # 105s # filename pass todo-fail fail 105s # --------------------------------------------------------------- 105s # additionalItems.json 20 0 0 105s # additionalProperties.json 16 0 0 105s # allOf.json 30 0 0 105s # anyOf.json 18 0 0 105s # boolean_schema.json 18 0 0 105s # const.json 50 0 0 105s # contains.json 19 0 0 105s # default.json 7 0 0 105s # definitions.json 2 0 0 105s # dependencies.json 36 0 0 105s # enum.json 45 0 0 105s # exclusiveMaximum.json 4 0 0 105s # exclusiveMinimum.json 4 0 0 105s # format.json 54 0 0 105s # infinite-loop-detection.json 2 0 0 105s # items.json 28 0 0 105s # maxItems.json 6 0 0 105s # maxLength.json 7 0 0 105s # maxProperties.json 10 0 0 105s # maximum.json 8 0 0 105s # minItems.json 6 0 0 105s # minLength.json 7 0 0 105s # minProperties.json 8 0 0 105s # minimum.json 11 0 0 105s # multipleOf.json 10 0 0 105s # not.json 38 0 0 105s # oneOf.json 27 0 0 105s # pattern.json 9 0 0 105s # patternProperties.json 23 0 0 105s # properties.json 28 0 0 105s # propertyNames.json 20 0 0 105s # ref.json 70 0 0 105s # refRemote.json 23 0 0 105s # required.json 16 0 0 105s # type.json 80 0 0 105s # uniqueItems.json 69 0 0 105s # optional/bignum.json 9 0 0 105s # optional/ecmascript-regex.json 60 14 0 105s # optional/float-overflow.json 1 0 0 105s # optional/id.json 7 0 0 105s # optional/non-bmp-regex.json 12 0 0 105s # optional/unknownKeyword.json 3 0 0 105s # --------------------------------------------------------------- 105s # TOTAL 921 14 0 105s # 105s # Congratulations, all non-optional tests are passing! 105s # 105s ok 936 - no leaks in the main evaluator object 105s ok 937 - no leaks in the short-circuiting evaluator object 105s 1..937 105s ok 106s t/zzz-acceptance-draft7-format.t ........ 106s # 106s # AUTHOR_TESTING: 106s # AUTOMATED_TESTING: 1 106s # EXTENDED_TESTING: 106s # NO_TODO: 106s # TEST_DIR: 106s # NO_SHORT_CIRCUIT: 106s # 106s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft7/optional/format against draft7... 106s # 106s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date-time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 32 - date.json: "validation of date strings" - "a valid date string" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 64 - date.json: "validation of date strings" - "invalid month" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid date string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 73 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 74 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 75 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 76 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 77 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 78 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 79 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 80 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 81 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 82 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 83 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 84 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 85 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 86 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 87 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 88 - hostname.json: "validation of host names" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 89 - hostname.json: "validation of host names" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 90 - hostname.json: "validation of host names" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 91 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 92 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 93 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 94 - hostname.json: "validation of host names" - "a valid host name" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 95 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 96 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 97 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 98 - hostname.json: "validation of host names" - "a host name with a component too long" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 99 - hostname.json: "validation of host names" - "starts with hyphen" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 100 - hostname.json: "validation of host names" - "ends with hyphen" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 101 - hostname.json: "validation of host names" - "starts with underscore" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 102 - hostname.json: "validation of host names" - "ends with underscore" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 103 - hostname.json: "validation of host names" - "contains underscore" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 104 - hostname.json: "validation of host names" - "maximum label length" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 105 - hostname.json: "validation of host names" - "exceeds maximum label length" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 106 - hostname.json: "validation of host names" - "single label" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 107 - hostname.json: "validation of host names" - "single label with hyphen" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 108 - hostname.json: "validation of host names" - "single label with digits" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 109 - hostname.json: "validation of host names" - "single label ending with digit" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 110 - hostname.json: "validation of host names" - "empty string" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 111 - hostname.json: "validation of host names" - "single dot" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 112 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 113 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 114 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 115 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 116 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 117 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 118 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 119 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 120 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 121 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-email string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 122 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 123 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 124 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 125 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 126 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 127 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 128 - idn-hostname.json: "validation of internationalized host names" - "a valid host name (example.test in Hangul)" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 129 - idn-hostname.json: "validation of internationalized host names" - "illegal first char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 130 - idn-hostname.json: "validation of internationalized host names" - "contains illegal char U+302E Hangul single dot tone mark" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "실〮례.테스트" 106s # result: 1 106s 1..1 106s } 106s ok 131 - idn-hostname.json: "validation of internationalized host names" - "a host name with a component too long" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 132 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 133 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 134 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "xn--X" 106s # result: 1 106s 1..1 106s } 106s ok 135 - idn-hostname.json: "validation of internationalized host names" - "U-label contains "--" in the 3rd and 4th position" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "XN--aa---o47jg78q" 106s # result: 1 106s 1..1 106s } 106s ok 136 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 137 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 138 - idn-hostname.json: "validation of internationalized host names" - "U-label starts and ends with a dash" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 139 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 140 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 141 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 142 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 143 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 144 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "ـߺ" 106s # result: 1 106s 1..1 106s } 106s ok 145 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "〱〲〳〴〵〮〯〻" 106s # result: 1 106s 1..1 106s } 106s ok 146 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "a·l" 106s # result: 1 106s 1..1 106s } 106s ok 147 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "·l" 106s # result: 1 106s 1..1 106s } 106s ok 148 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "l·a" 106s # result: 1 106s 1..1 106s } 106s ok 149 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "l·" 106s # result: 1 106s 1..1 106s } 106s ok 150 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 151 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "α͵S" 106s # result: 1 106s 1..1 106s } 106s ok 152 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "α͵" 106s # result: 1 106s 1..1 106s } 106s ok 153 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 154 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 155 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "׳ב" 106s # result: 1 106s 1..1 106s } 106s ok 156 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 157 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 158 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "״ב" 106s # result: 1 106s 1..1 106s } 106s ok 159 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 160 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "def・abc" 106s # result: 1 106s 1..1 106s } 106s ok 161 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "idn-hostname" 106s # } 106s # data: "・" 106s # result: 1 106s 1..1 106s } 106s ok 162 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 163 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 164 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 165 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 166 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits not mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 167 - idn-hostname.json: "validation of internationalized host names" - "Extended Arabic-Indic digits not mixed with Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 168 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 169 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 170 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 171 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 172 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER not preceded by Virama but matches regexp" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 173 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 174 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 175 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 176 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 177 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false # 106s 1..1 106s } 106s ok 178 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 179 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 180 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 181 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid idn-hostname string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 182 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 183 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 184 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 185 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s # 106s ok 186 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 187 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 188 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 189 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 190 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 191 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 192 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 193 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 194 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 195 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 196 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 197 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 198 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 199 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 200 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 201 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv4 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 202 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 203 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 204 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 205 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 206 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 207 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 208 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 209 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 210 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 211 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 212 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 213 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 214 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 215 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 216 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 217 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 218 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 219 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 220 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 221 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 222 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 223 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 224 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 225 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 226 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 227 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 228 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 229 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 230 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 231 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 232 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 233 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 234 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 235 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 236 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 237 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 238 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 239 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 240 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 241 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid ipv6 string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 242 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 243 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 244 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 245 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 246 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 247 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 248 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 249 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 250 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 251 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "iri-reference" 106s # } 106s # data: "\\\\WINDOWS\\filëßåré" 106s # result: 1 106s 1..1 106s } 106s ok 252 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 253 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 254 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "iri-reference" 106s # } 106s # data: "#ƒräg\\mênt" 106s # result: 1 106s 1..1 106s } 106s # 106s ok 255 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 256 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 257 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 258 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 259 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 260 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 261 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 262 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 263 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 264 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 265 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 266 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "iri" 106s # } 106s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 106s # result: 1 106s 1..1 106s } 106s ok 267 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid iri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid iri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 268 - iri.json: "validation of IRIs" - "an invalid IRI" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid iri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid iri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 269 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid iri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid iri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 270 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 271 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 272 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 273 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 274 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 275 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 276 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 277 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 278 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 279 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 280 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 281 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 282 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 283 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 284 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 285 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 286 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 287 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 288 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 289 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 290 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 291 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 292 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 293 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 294 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 295 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 296 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 297 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 298 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 299 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 300 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 301 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 302 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 303 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 304 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 305 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 308 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 309 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 310 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 311 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 312 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 313 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 314 - regex.json: "validation of regular expressions" - "a valid regular expression" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 315 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid regex string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid regex string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 316 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 317 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 318 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 319 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 320 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 321 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 322 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 323 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 324 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 325 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 326 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 327 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 328 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 329 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 330 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 331 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 332 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid relative-json-pointer string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 333 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s # 106s ok 334 - time.json: "validation of time strings" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 335 - time.json: "validation of time strings" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 336 - time.json: "validation of time strings" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 337 - time.json: "validation of time strings" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 338 - time.json: "validation of time strings" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 339 - time.json: "validation of time strings" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 340 - time.json: "validation of time strings" - "a valid time string" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 341 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 342 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 343 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 344 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 345 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 346 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 347 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 348 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 349 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 350 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 351 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 352 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 353 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 354 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 355 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 356 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 357 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 358 - time.json: "validation of time strings" - "a valid time string with second fraction" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 359 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 360 - time.json: "validation of time strings" - "a valid time string with plus offset" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 361 - time.json: "validation of time strings" - "a valid time string with minus offset" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 362 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 363 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 364 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 365 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 366 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 367 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 368 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 369 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 370 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 371 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 372 - time.json: "validation of time strings" - "an invalid offset indicator" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 373 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 374 - time.json: "validation of time strings" - "no time offset" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 375 - time.json: "validation of time strings" - "no time offset with second fraction" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 376 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 377 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 378 - time.json: "validation of time strings" - "contains letters" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid time string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 379 - unknown.json: "unknown format" - "unknown formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 380 - unknown.json: "unknown format" - "unknown formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 381 - unknown.json: "unknown format" - "unknown formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 382 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 383 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 384 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 385 - unknown.json: "unknown format" - "unknown formats ignore strings" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s # 106s ok 386 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 387 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 388 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 389 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 390 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 391 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 392 - uri-reference.json: "validation of URI References" - "a valid URI" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 393 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 394 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 395 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri-reference string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri-reference string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 396 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 397 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 398 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri-reference string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri-reference string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s # 106s ok 399 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 400 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 401 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 402 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 403 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 404 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 405 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 406 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "uri-template" 106s # } 106s # data: "http://example.com/dictionary/{term:1}/{term" 106s # result: 1 106s 1..1 106s } 106s ok 407 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s ok 408 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true # 106s 1..1 106s } 106s # 106s ok 409 - uri.json: "validation of URIs" - "all string formats ignore integers" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 410 - uri.json: "validation of URIs" - "all string formats ignore floats" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 411 - uri.json: "validation of URIs" - "all string formats ignore objects" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 412 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 413 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 414 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 415 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 416 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 417 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 418 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 419 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 420 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 421 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 422 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 423 - uri.json: "validation of URIs" - "a valid URL " { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 424 - uri.json: "validation of URIs" - "a valid mailto URI" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 425 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 426 - uri.json: "validation of URIs" - "a valid tel URI" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 427 - uri.json: "validation of URIs" - "a valid URN" { 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s ok 1 - test passes: data is valid: true 106s 1..1 106s } 106s ok 428 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 429 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 430 - uri.json: "validation of URIs" - "an invalid URI" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 431 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 432 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 433 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 106s # result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s # short-circuited result: { 106s # "errors": [ 106s # { 106s # "error": "not a valid uri string", 106s # "instanceLocation": "", 106s # "keywordLocation": "/format" 106s # } 106s # ], 106s # "valid": false 106s # } 106s ok 1 - test passes: data is valid: false 106s 1..1 106s } 106s ok 434 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 106s # result: { 106s # "valid": true 106s # } 106s # short-circuited result: { 106s # "valid": true 106s # } 106s not ok 1 - evaluation result is incorrect # 106s # Failed test (with amnesty) 'evaluation result is incorrect' 106s # at t/zzz-acceptance-draft7-format.t line 70. 106s # expected false; got true 106s # schema: { 106s # "format": "uri" 106s # } 106s # data: "bar,baz:foo" 106s # result: 1 106s 1..1 106s } 106s # 106s # generated with: Test::JSON::Schema::Acceptance 1.029 106s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 106s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 106s # specification version: draft7 106s # using custom test directory: /optional/format 106s # optional tests included: yes 106s # 106s # filename pass todo-fail fail 106s # --------------------------------------------------------------- 106s # date-time.json 25 0 0 106s # date.json 47 0 0 106s # email.json 15 0 0 106s # hostname.json 24 0 0 106s # idn-email.json 10 0 0 106s # idn-hostname.json 49 15 0 106s # ipv4.json 16 0 0 106s # ipv6.json 40 0 0 106s # iri-reference.json 11 2 0 106s # iri.json 14 1 0 106s # json-pointer.json 38 0 0 106s # regex.json 8 0 0 106s # relative-json-pointer.json 18 0 0 106s # time.json 45 0 0 106s # unknown.json 7 0 0 106s # uri-reference.json 13 0 0 106s # uri-template.json 9 1 0 106s # uri.json 25 1 0 106s # --------------------------------------------------------------- 106s # TOTAL 414 20 0 106s # 106s # Congratulations, all non-optional tests are passing! 106s # 106s ok 435 - no leaks in the main evaluator object 106s ok 436 - no leaks in the short-circuiting evaluator object 106s 1..436 106s ok 109s t/zzz-acceptance-draft7.t ............... 109s # 109s # AUTHOR_TESTING: 109s # AUTOMATED_TESTING: 1 109s # EXTENDED_TESTING: 109s # NO_TODO: 109s # TEST_DIR: 109s # NO_SHORT_CIRCUIT: 109s # 109s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 109s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft7 against draft7... 109s # 109s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/3", 109s # "keywordLocation": "/additionalItems/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/3", 109s # "keywordLocation": "/additionalItems/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items/type" 109s # }, 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/3", 109s # "keywordLocation": "/additionalItems" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/3", 109s # "keywordLocation": "/additionalItems" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not boolean", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/additionalItems/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not boolean", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/additionalItems/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/additionalItems/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/additionalItems/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/additionalItems" 109s # }, 109s # { 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/additionalItems" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/additionalItems" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/quux", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/quux", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/élmény", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/élmény", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not boolean", 109s # "instanceLocation": "/quux", 109s # "keywordLocation": "/additionalProperties/type" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not boolean", 109s # "instanceLocation": "/quux", 109s # "keywordLocation": "/additionalProperties/type" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not boolean", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/additionalProperties/type" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not boolean", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/additionalProperties/type" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not boolean", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/additionalProperties/type" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not boolean", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/additionalProperties/type" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 37 - allOf.json: "allOf" - "allOf" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 38 - allOf.json: "allOf" - "mismatch second" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/required" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/required" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 39 - allOf.json: "allOf" - "mismatch first" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/required" 109s # }, 109s # { 109s # "error": "subschema 1 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/required" 109s # }, 109s # { 109s # "error": "subschema 1 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 40 - allOf.json: "allOf" - "wrong type" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/allOf/0/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/properties" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/allOf/0/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/properties" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 41 - allOf.json: "allOf with base schema" - "valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 42 - allOf.json: "allOf with base schema" - "mismatch base schema" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 43 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/required" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/required" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 44 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: baz", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/required" 109s # }, 109s # { 109s # "error": "subschema 1 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: baz", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/required" 109s # }, 109s # { 109s # "error": "subschema 1 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 45 - allOf.json: "allOf with base schema" - "mismatch both" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/required" 109s # }, 109s # { 109s # "error": "object is missing property: baz", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/required" 109s # }, 109s # { 109s # "error": "subschemas 0, 1 are not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/required" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 46 - allOf.json: "allOf simple types" - "valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 47 - allOf.json: "allOf simple types" - "mismatch one" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than 30", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/maximum" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than 30", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/maximum" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 48 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 49 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1" 109s # }, 109s # { 109s # "error": "subschema 1 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1" 109s # }, 109s # { 109s # "error": "subschema 1 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 50 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0" 109s # }, 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1" 109s # }, 109s # { 109s # "error": "subschemas 0, 1 are not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 51 - allOf.json: "allOf with one empty schema" - "any data is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 52 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 53 - allOf.json: "allOf with the first empty schema" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 54 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/type" 109s # }, 109s # { 109s # "error": "subschema 1 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/type" 109s # }, 109s # { 109s # "error": "subschema 1 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 55 - allOf.json: "allOf with the last empty schema" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 56 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 57 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 58 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/allOf/0/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/allOf" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/allOf/0/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/allOf" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 5", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 5", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 62 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 63 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 5", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 5", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 5", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/multipleOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 67 - anyOf.json: "anyOf" - "first anyOf valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 68 - anyOf.json: "anyOf" - "second anyOf valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 69 - anyOf.json: "anyOf" - "both anyOf valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 70 - anyOf.json: "anyOf" - "neither anyOf valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/type" 109s # }, 109s # { 109s # "error": "value is less than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/minimum" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/type" 109s # }, 109s # { 109s # "error": "value is less than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/minimum" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 71 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 72 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 73 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "length is greater than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/maxLength" 109s # }, 109s # { 109s # "error": "length is less than 4", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/minLength" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "length is greater than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/maxLength" 109s # }, 109s # { 109s # "error": "length is less than 4", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/minLength" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 74 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 75 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 76 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0" 109s # }, 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0" 109s # }, 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 77 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 78 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 79 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 80 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/anyOf/0/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/properties" 109s # }, 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/anyOf/1/properties/foo/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/properties" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/anyOf/0/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/properties" 109s # }, 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/anyOf/1/properties/foo/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/properties" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 81 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 82 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 83 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 84 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/anyOf/0/type" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/anyOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/anyOf/0/type" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/anyOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 85 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 86 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 87 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 88 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 89 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 90 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 91 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 92 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 93 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 94 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 95 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 96 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 97 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 98 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 99 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 100 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 101 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 102 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 103 - const.json: "const validation" - "same value is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 104 - const.json: "const validation" - "another value is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 105 - const.json: "const validation" - "another type is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 106 - const.json: "const with object" - "same object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 107 - const.json: "const with object" - "same object with different property order is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 108 - const.json: "const with object" - "another object is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 109 - const.json: "const with object" - "another type is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 110 - const.json: "const with array" - "same array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 111 - const.json: "const with array" - "another array item is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/0': wrong type: integer vs object)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/0': wrong type: integer vs object)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 112 - const.json: "const with array" - "array with additional items is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 113 - const.json: "const with null" - "null is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 114 - const.json: "const with null" - "not null is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 115 - const.json: "const with false does not match 0" - "false is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 116 - const.json: "const with false does not match 0" - "integer zero is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 117 - const.json: "const with false does not match 0" - "float zero is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 118 - const.json: "const with true does not match 1" - "true is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 119 - const.json: "const with true does not match 1" - "integer one is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 120 - const.json: "const with true does not match 1" - "float one is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 121 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 122 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 123 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 124 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 125 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 126 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 127 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 128 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 129 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 130 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 131 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 132 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 133 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 134 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 135 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 136 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 137 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 138 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 139 - const.json: "const with 1 does not match true" - "true is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 140 - const.json: "const with 1 does not match true" - "integer one is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 141 - const.json: "const with 1 does not match true" - "float one is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 142 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 143 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 144 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 145 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 146 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 147 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 148 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 149 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 150 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 151 - const.json: "nul characters in strings" - "match string with nul" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 152 - const.json: "nul characters in strings" - "do not match string lacking nul" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/const" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 153 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 154 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 155 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 156 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than 5", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/contains/minimum" 109s # }, 109s # { 109s # "error": "value is less than 5", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/contains/minimum" 109s # }, 109s # { 109s # "error": "value is less than 5", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/contains/minimum" 109s # }, 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than 5", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/contains/minimum" 109s # }, 109s # { 109s # "error": "value is less than 5", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/contains/minimum" 109s # }, 109s # { 109s # "error": "value is less than 5", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/contains/minimum" 109s # }, 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 157 - contains.json: "contains keyword validation" - "empty array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 158 - contains.json: "contains keyword validation" - "not array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 159 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 160 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 161 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/contains/const" 109s # }, 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/contains/const" 109s # }, 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/contains/const" 109s # }, 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/3", 109s # "keywordLocation": "/contains/const" 109s # }, 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/contains/const" 109s # }, 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/contains/const" 109s # }, 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/contains/const" 109s # }, 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/3", 109s # "keywordLocation": "/contains/const" 109s # }, 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 162 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 163 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 164 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/contains" 109s # }, 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/contains" 109s # }, 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 165 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 166 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 167 - contains.json: "items + contains" - "matches items, does not match contains" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/contains/multipleOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/contains/multipleOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/contains/multipleOf" 109s # }, 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/contains/multipleOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/contains/multipleOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/contains/multipleOf" 109s # }, 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 168 - contains.json: "items + contains" - "does not match items, matches contains" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/multipleOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/items/multipleOf" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/multipleOf" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 169 - contains.json: "items + contains" - "matches both items and contains" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 170 - contains.json: "items + contains" - "matches neither items nor contains" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/multipleOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items/multipleOf" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # }, 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/contains/multipleOf" 109s # }, 109s # { 109s # "error": "value is not a multiple of 3", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/contains/multipleOf" 109s # }, 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/multipleOf" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 171 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 172 - contains.json: "contains with false if subschema" - "empty array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is not valid against any item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contains" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 173 - contains.json: "contains with null instance elements" - "allows null items" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 174 - default.json: "invalid type for default" - "valid when property is specified" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 175 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 176 - default.json: "invalid string value for default" - "valid when property is specified" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 177 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 178 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (passing)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 179 - default.json: "the default keyword does not do anything if the property is missing" - "an explicit property value is checked against maximum (failing)" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than 3", 109s # "instanceLocation": "/alpha", 109s # "keywordLocation": "/properties/alpha/maximum" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than 3", 109s # "instanceLocation": "/alpha", 109s # "keywordLocation": "/properties/alpha/maximum" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 180 - default.json: "the default keyword does not do anything if the property is missing" - "missing properties are not filled in with the default" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 181 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 182 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/simpleTypes/enum", 109s # "error": "value does not match", 109s # "instanceLocation": "/definitions/foo/type", 109s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf/1/type", 109s # "error": "got integer, not array", 109s # "instanceLocation": "/definitions/foo/type", 109s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf", 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "/definitions/foo/type", 109s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/definitions/foo", 109s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/definitions/additionalProperties", 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "/definitions", 109s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/simpleTypes/enum", 109s # "error": "value does not match", 109s # "instanceLocation": "/definitions/foo/type", 109s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf/1/type", 109s # "error": "got integer, not array", 109s # "instanceLocation": "/definitions/foo/type", 109s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf", 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "/definitions/foo/type", 109s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/definitions/foo", 109s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/definitions/additionalProperties", 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "/definitions", 109s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 183 - dependencies.json: "dependencies" - "neither" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 184 - dependencies.json: "dependencies" - "nondependant" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 185 - dependencies.json: "dependencies" - "with dependency" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 186 - dependencies.json: "dependencies" - "missing dependency" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 187 - dependencies.json: "dependencies" - "ignores arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 188 - dependencies.json: "dependencies" - "ignores strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 189 - dependencies.json: "dependencies" - "ignores other non-objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 190 - dependencies.json: "dependencies with empty array" - "empty object" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 191 - dependencies.json: "dependencies with empty array" - "object with one property" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 192 - dependencies.json: "dependencies with empty array" - "non-object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 193 - dependencies.json: "multiple dependencies" - "neither" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 194 - dependencies.json: "multiple dependencies" - "nondependants" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 195 - dependencies.json: "multiple dependencies" - "with dependencies" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 196 - dependencies.json: "multiple dependencies" - "missing dependency" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/quux" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/quux" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 197 - dependencies.json: "multiple dependencies" - "missing other dependency" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/quux" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/quux" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 198 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: foo, bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/quux" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: foo, bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/quux" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 199 - dependencies.json: "multiple dependencies subschema" - "valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 200 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 201 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/dependencies/bar/properties/foo/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar/properties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/dependencies/bar/properties/foo/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar/properties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 202 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/dependencies/bar/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar/properties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/dependencies/bar/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar/properties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 203 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/dependencies/bar/properties/bar/type" 109s # }, 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/dependencies/bar/properties/foo/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar/properties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/dependencies/bar/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar/properties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 204 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema true is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 205 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema false is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 206 - dependencies.json: "dependencies with boolean subschemas" - "object with both properties is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/bar" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 207 - dependencies.json: "dependencies with boolean subschemas" - "empty object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 208 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 209 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 210 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 211 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo\rbar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo\nbar" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo\rbar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo\nbar" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 212 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object has fewer than 4 properties", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object has fewer than 4 properties", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 213 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo\"bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo'bar/required" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo\"bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo'bar/required" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 214 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo'bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo\"bar" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo'bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo\"bar" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 215 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/dependencies/foo/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo/additionalProperties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/dependencies/foo/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo/additionalProperties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 216 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 217 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/dependencies/foo/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo/additionalProperties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/dependencies/foo/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies/foo/additionalProperties" 109s # }, 109s # { 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/dependencies" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 218 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 219 - enum.json: "simple enum validation" - "one of the enum is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 220 - enum.json: "simple enum validation" - "something else is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 221 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 222 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 223 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '': wrong type: object vs integer; from enum 1 at '': wrong type: object vs string; from enum 2 at '': wrong type: object vs array; from enum 3 at '': wrong type: object vs boolean; from enum 4 at '/foo': wrong type: boolean vs integer)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 224 - enum.json: "heterogeneous enum validation" - "valid object matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 225 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 226 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 227 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 228 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 229 - enum.json: "enums in properties" - "both properties are valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 230 - enum.json: "enums in properties" - "wrong foo value" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/enum" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/enum" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 231 - enum.json: "enums in properties" - "wrong bar value" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar/enum" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar/enum" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 232 - enum.json: "enums in properties" - "missing optional property is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 233 - enum.json: "enums in properties" - "missing required property is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 234 - enum.json: "enums in properties" - "missing all properties is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 235 - enum.json: "enum with escaped characters" - "member 1 is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 236 - enum.json: "enum with escaped characters" - "member 2 is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 237 - enum.json: "enum with escaped characters" - "another string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 238 - enum.json: "enum with false does not match 0" - "false is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 239 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 240 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 241 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 242 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 243 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 244 - enum.json: "enum with true does not match 1" - "true is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 245 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 246 - enum.json: "enum with true does not match 1" - "float one is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 247 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 248 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 249 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 250 - enum.json: "enum with 0 does not match false" - "false is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 251 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 252 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 253 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 254 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 255 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 256 - enum.json: "enum with 1 does not match true" - "true is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 257 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 258 - enum.json: "enum with 1 does not match true" - "float one is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 259 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 260 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 261 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 262 - enum.json: "nul characters in strings" - "match string with nul" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 263 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 264 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 265 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than or equal to 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMaximum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than or equal to 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMaximum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 266 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than or equal to 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMaximum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than or equal to 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMaximum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 267 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 268 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 269 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than or equal to 1.1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMinimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than or equal to 1.1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMinimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 270 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than or equal to 1.1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMinimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than or equal to 1.1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMinimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 271 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 272 - format.json: "email format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 273 - format.json: "email format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 274 - format.json: "email format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 275 - format.json: "email format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 276 - format.json: "email format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 277 - format.json: "email format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 278 - format.json: "idn-email format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 279 - format.json: "idn-email format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 280 - format.json: "idn-email format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 281 - format.json: "idn-email format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 282 - format.json: "idn-email format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 283 - format.json: "idn-email format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 284 - format.json: "regex format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 285 - format.json: "regex format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 286 - format.json: "regex format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 287 - format.json: "regex format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 288 - format.json: "regex format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 289 - format.json: "regex format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 290 - format.json: "ipv4 format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 291 - format.json: "ipv4 format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 292 - format.json: "ipv4 format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 293 - format.json: "ipv4 format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 294 - format.json: "ipv4 format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 295 - format.json: "ipv4 format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 296 - format.json: "ipv6 format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 297 - format.json: "ipv6 format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 298 - format.json: "ipv6 format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 299 - format.json: "ipv6 format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 300 - format.json: "ipv6 format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 301 - format.json: "ipv6 format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 302 - format.json: "idn-hostname format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 303 - format.json: "idn-hostname format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 304 - format.json: "idn-hostname format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 305 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 306 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 307 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 308 - format.json: "hostname format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 309 - format.json: "hostname format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 310 - format.json: "hostname format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 311 - format.json: "hostname format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 312 - format.json: "hostname format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 313 - format.json: "hostname format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 314 - format.json: "date format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 315 - format.json: "date format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 316 - format.json: "date format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 317 - format.json: "date format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 318 - format.json: "date format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 319 - format.json: "date format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 320 - format.json: "date-time format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 321 - format.json: "date-time format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 322 - format.json: "date-time format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 323 - format.json: "date-time format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 324 - format.json: "date-time format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 325 - format.json: "date-time format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 326 - format.json: "time format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 327 - format.json: "time format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 328 - format.json: "time format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 329 - format.json: "time format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 330 - format.json: "time format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 331 - format.json: "time format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 332 - format.json: "json-pointer format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 333 - format.json: "json-pointer format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 334 - format.json: "json-pointer format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 335 - format.json: "json-pointer format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 336 - format.json: "json-pointer format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 337 - format.json: "json-pointer format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 338 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 339 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 340 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 341 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 342 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 343 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 344 - format.json: "iri format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 345 - format.json: "iri format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 346 - format.json: "iri format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 347 - format.json: "iri format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 348 - format.json: "iri format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 349 - format.json: "iri format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 350 - format.json: "iri-reference format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 351 - format.json: "iri-reference format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 352 - format.json: "iri-reference format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 353 - format.json: "iri-reference format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 354 - format.json: "iri-reference format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 355 - format.json: "iri-reference format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 356 - format.json: "uri format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 357 - format.json: "uri format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 358 - format.json: "uri format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 359 - format.json: "uri format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 360 - format.json: "uri format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 361 - format.json: "uri format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 362 - format.json: "uri-reference format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 363 - format.json: "uri-reference format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 364 - format.json: "uri-reference format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 365 - format.json: "uri-reference format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 366 - format.json: "uri-reference format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 367 - format.json: "uri-reference format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 368 - format.json: "uri-template format" - "all string formats ignore integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 369 - format.json: "uri-template format" - "all string formats ignore floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 370 - format.json: "uri-template format" - "all string formats ignore objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 371 - format.json: "uri-template format" - "all string formats ignore arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 372 - format.json: "uri-template format" - "all string formats ignore booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 373 - format.json: "uri-template format" - "all string formats ignore nulls" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 374 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 375 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 376 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 377 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 378 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 379 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 380 - if-then-else.json: "if and then without else" - "valid through then" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 381 - if-then-else.json: "if and then without else" - "invalid through then" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than -10", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then/minimum" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than -10", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then/minimum" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 382 - if-then-else.json: "if and then without else" - "valid when if test fails" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 383 - if-then-else.json: "if and else without then" - "valid when if test passes" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 384 - if-then-else.json: "if and else without then" - "valid through else" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 385 - if-then-else.json: "if and else without then" - "invalid through else" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/multipleOf" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/multipleOf" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 386 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 387 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than -10", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then/minimum" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than -10", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then/minimum" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 388 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 389 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/multipleOf" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/multipleOf" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 390 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 391 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 392 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 393 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 394 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 395 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 396 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 397 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 398 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/then" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 399 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 400 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "passing case" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 401 - infinite-loop-detection.json: "evaluating the same schema location against the same data location twice is not a sign of an infinite loop" - "failing case" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/int/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "#/definitions/int/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/additionalProperties" 109s # }, 109s # { 109s # "error": "subschemas 0, 1 are not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/int/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/properties" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 402 - items.json: "a schema given for items" - "valid items" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 403 - items.json: "a schema given for items" - "wrong type of items" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 404 - items.json: "a schema given for items" - "ignores non-arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 405 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 406 - items.json: "an array of schemas for items" - "correct types" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 407 - items.json: "an array of schemas for items" - "wrong types" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/0/type" 109s # }, 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items/1/type" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/0/type" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 408 - items.json: "an array of schemas for items" - "incomplete array of items" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 409 - items.json: "an array of schemas for items" - "array with additional items" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 410 - items.json: "an array of schemas for items" - "empty array" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 411 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 412 - items.json: "items with boolean schema (true)" - "any array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 413 - items.json: "items with boolean schema (true)" - "empty array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 414 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "item not permitted", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items" 109s # }, 109s # { 109s # "error": "item not permitted", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items" 109s # }, 109s # { 109s # "error": "item not permitted", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "item not permitted", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 415 - items.json: "items with boolean schema (false)" - "empty array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 416 - items.json: "items with boolean schemas" - "array with one item is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 417 - items.json: "items with boolean schemas" - "array with two items is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "item not permitted", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items/1" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "item not permitted", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items/1" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 418 - items.json: "items with boolean schemas" - "empty array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 419 - items.json: "items and subitems" - "valid items" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 420 - items.json: "items and subitems" - "too many items" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/3", 109s # "keywordLocation": "/additionalItems" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/3", 109s # "keywordLocation": "/additionalItems" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 421 - items.json: "items and subitems" - "too many sub-items" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/0/2", 109s # "keywordLocation": "/items/0/$ref/additionalItems" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/0/$ref/additionalItems" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/0/2", 109s # "keywordLocation": "/items/0/$ref/additionalItems" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/0/$ref/additionalItems" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 422 - items.json: "items and subitems" - "wrong item" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/item/type", 109s # "error": "got object, not array", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/0/$ref/type" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/item/type", 109s # "error": "got object, not array", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/0/$ref/type" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 423 - items.json: "items and subitems" - "wrong sub-item" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "/0/0", 109s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "#/definitions/item/items", 109s # "error": "not all items are valid", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/0/$ref/items" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "/0/0", 109s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "#/definitions/item/items", 109s # "error": "not all items are valid", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/0/$ref/items" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 424 - items.json: "items and subitems" - "fewer items is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 425 - items.json: "nested items" - "valid nested array" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 426 - items.json: "nested items" - "nested array with invalid type" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "/0/0/0/0", 109s # "keywordLocation": "/items/items/items/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0/0/0", 109s # "keywordLocation": "/items/items/items/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0/0", 109s # "keywordLocation": "/items/items/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "/0/0/0/0", 109s # "keywordLocation": "/items/items/items/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0/0/0", 109s # "keywordLocation": "/items/items/items/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0/0", 109s # "keywordLocation": "/items/items/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 427 - items.json: "nested items" - "not deep enough" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not array", 109s # "instanceLocation": "/0/0/0", 109s # "keywordLocation": "/items/items/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0/0", 109s # "keywordLocation": "/items/items/items" 109s # }, 109s # { 109s # "error": "got integer, not array", 109s # "instanceLocation": "/0/1/0", 109s # "keywordLocation": "/items/items/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0/1", 109s # "keywordLocation": "/items/items/items" 109s # }, 109s # { 109s # "error": "got integer, not array", 109s # "instanceLocation": "/0/2/0", 109s # "keywordLocation": "/items/items/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0/2", 109s # "keywordLocation": "/items/items/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/items" 109s # }, 109s # { 109s # "error": "got integer, not array", 109s # "instanceLocation": "/1/0/0", 109s # "keywordLocation": "/items/items/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/1/0", 109s # "keywordLocation": "/items/items/items" 109s # }, 109s # { 109s # "error": "got integer, not array", 109s # "instanceLocation": "/1/1/0", 109s # "keywordLocation": "/items/items/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/1/1", 109s # "keywordLocation": "/items/items/items" 109s # }, 109s # { 109s # "error": "got integer, not array", 109s # "instanceLocation": "/1/2/0", 109s # "keywordLocation": "/items/items/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/1/2", 109s # "keywordLocation": "/items/items/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not array", 109s # "instanceLocation": "/0/0/0", 109s # "keywordLocation": "/items/items/items/type" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0/0", 109s # "keywordLocation": "/items/items/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/items" 109s # }, 109s # { 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 428 - items.json: "single-form items with null instance elements" - "allows null elements" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 429 - items.json: "array-form items with null instance elements" - "allows null elements" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 430 - maxItems.json: "maxItems validation" - "shorter is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 431 - maxItems.json: "maxItems validation" - "exact length is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 432 - maxItems.json: "maxItems validation" - "too long is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "array has more than 2 items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "array has more than 2 items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 433 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 434 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 435 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "array has more than 2 items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "array has more than 2 items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 436 - maxLength.json: "maxLength validation" - "shorter is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 437 - maxLength.json: "maxLength validation" - "exact length is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 438 - maxLength.json: "maxLength validation" - "too long is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "length is greater than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxLength" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "length is greater than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxLength" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 439 - maxLength.json: "maxLength validation" - "ignores non-strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 440 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 441 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 442 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "length is greater than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxLength" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "length is greater than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxLength" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 443 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 444 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 445 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object has more than 2 properties", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object has more than 2 properties", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 446 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 447 - maxProperties.json: "maxProperties validation" - "ignores strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 448 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 449 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 450 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object has more than 2 properties", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object has more than 2 properties", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 451 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 452 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object has more than 0 property", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object has more than 0 property", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maxProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 453 - maximum.json: "maximum validation" - "below the maximum is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 454 - maximum.json: "maximum validation" - "boundary point is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 455 - maximum.json: "maximum validation" - "above the maximum is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maximum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than 3", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maximum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 456 - maximum.json: "maximum validation" - "ignores non-numbers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 457 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 458 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 459 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 460 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than 300", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maximum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than 300", 109s # "instanceLocation": "", 109s # "keywordLocation": "/maximum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 461 - minItems.json: "minItems validation" - "longer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 462 - minItems.json: "minItems validation" - "exact length is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 463 - minItems.json: "minItems validation" - "too short is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "array has fewer than 1 item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "array has fewer than 1 item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 464 - minItems.json: "minItems validation" - "ignores non-arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 465 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 466 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "array has fewer than 1 item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "array has fewer than 1 item", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 467 - minLength.json: "minLength validation" - "longer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 468 - minLength.json: "minLength validation" - "exact length is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 469 - minLength.json: "minLength validation" - "too short is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "length is less than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minLength" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "length is less than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minLength" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 470 - minLength.json: "minLength validation" - "ignores non-strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 471 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "length is less than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minLength" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "length is less than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minLength" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 472 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 473 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "length is less than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minLength" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "length is less than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minLength" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 474 - minProperties.json: "minProperties validation" - "longer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 475 - minProperties.json: "minProperties validation" - "exact length is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 476 - minProperties.json: "minProperties validation" - "too short is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object has fewer than 1 property", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object has fewer than 1 property", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 477 - minProperties.json: "minProperties validation" - "ignores arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 478 - minProperties.json: "minProperties validation" - "ignores strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 479 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 480 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 481 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object has fewer than 1 property", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object has fewer than 1 property", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 482 - minimum.json: "minimum validation" - "above the minimum is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 483 - minimum.json: "minimum validation" - "boundary point is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 484 - minimum.json: "minimum validation" - "below the minimum is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than 1.1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than 1.1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 485 - minimum.json: "minimum validation" - "ignores non-numbers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 486 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 487 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 488 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 489 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 490 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than -2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than -2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 491 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than -2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than -2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/minimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 492 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 493 - multipleOf.json: "by int" - "int by int" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 494 - multipleOf.json: "by int" - "int by int fail" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/multipleOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/multipleOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 495 - multipleOf.json: "by int" - "ignores non-numbers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 496 - multipleOf.json: "by number" - "zero is multiple of anything" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 497 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 498 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 1.5", 109s # "instanceLocation": "", 109s # "keywordLocation": "/multipleOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 1.5", 109s # "instanceLocation": "", 109s # "keywordLocation": "/multipleOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 499 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 500 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 0.0001", 109s # "instanceLocation": "", 109s # "keywordLocation": "/multipleOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 0.0001", 109s # "instanceLocation": "", 109s # "keywordLocation": "/multipleOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 501 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 0.123456789", 109s # "instanceLocation": "", 109s # "keywordLocation": "/multipleOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is not a multiple of 0.123456789", 109s # "instanceLocation": "", 109s # "keywordLocation": "/multipleOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 502 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 503 - not.json: "not" - "allowed" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 504 - not.json: "not" - "disallowed" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 505 - not.json: "not multiple types" - "valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 506 - not.json: "not multiple types" - "mismatch" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 507 - not.json: "not multiple types" - "other mismatch" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 508 - not.json: "not more complex schema" - "match" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 509 - not.json: "not more complex schema" - "other match" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 510 - not.json: "not more complex schema" - "mismatch" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 511 - not.json: "forbidden property" - "property present" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/not" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/not" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 512 - not.json: "forbidden property" - "property absent" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 513 - not.json: "forbid everything with empty schema" - "number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 514 - not.json: "forbid everything with empty schema" - "string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 515 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 516 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 517 - not.json: "forbid everything with empty schema" - "null is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 518 - not.json: "forbid everything with empty schema" - "object is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 519 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 520 - not.json: "forbid everything with empty schema" - "array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 521 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 522 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 523 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 524 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 525 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 526 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 527 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 528 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 529 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 530 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is true", 109s # "instanceLocation": "", 109s # "keywordLocation": "/not" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 531 - not.json: "allow everything with boolean schema false" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 532 - not.json: "allow everything with boolean schema false" - "string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 533 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 534 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 535 - not.json: "allow everything with boolean schema false" - "null is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 536 - not.json: "allow everything with boolean schema false" - "object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 537 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 538 - not.json: "allow everything with boolean schema false" - "array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 539 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 540 - not.json: "double negation" - "any value is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 541 - oneOf.json: "oneOf" - "first oneOf valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 542 - oneOf.json: "oneOf" - "second oneOf valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 543 - oneOf.json: "oneOf" - "both oneOf valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 544 - oneOf.json: "oneOf" - "neither oneOf valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/type" 109s # }, 109s # { 109s # "error": "value is less than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/1/minimum" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/type" 109s # }, 109s # { 109s # "error": "value is less than 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/1/minimum" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 545 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # }, 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 546 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 547 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 548 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1, 2", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 549 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 550 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 551 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0" 109s # }, 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/1" 109s # }, 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/2" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0" 109s # }, 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/1" 109s # }, 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/2" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 552 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 553 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 554 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 555 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/oneOf/0/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/properties" 109s # }, 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/oneOf/1/properties/foo/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/1/properties" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/oneOf/0/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/properties" 109s # }, 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/oneOf/1/properties/foo/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/1/properties" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 556 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 557 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 558 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/required" 109s # }, 109s # { 109s # "error": "object is missing properties: foo, baz", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/1/required" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/required" 109s # }, 109s # { 109s # "error": "object is missing properties: foo, baz", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/1/required" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 559 - oneOf.json: "oneOf with required" - "first valid - valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 560 - oneOf.json: "oneOf with required" - "second valid - valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 561 - oneOf.json: "oneOf with required" - "both valid - invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 562 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 563 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 564 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "multiple subschemas are valid: 0, 1", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 565 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/required" 109s # }, 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/1/required" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/required" 109s # }, 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/1/required" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 566 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 567 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/oneOf/0/type" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/oneOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/oneOf/0/type" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf/0/oneOf" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/oneOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 568 - pattern.json: "pattern validation" - "a matching pattern is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 569 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 570 - pattern.json: "pattern validation" - "ignores booleans" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 571 - pattern.json: "pattern validation" - "ignores integers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 572 - pattern.json: "pattern validation" - "ignores floats" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 573 - pattern.json: "pattern validation" - "ignores objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 574 - pattern.json: "pattern validation" - "ignores arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 575 - pattern.json: "pattern validation" - "ignores null" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 576 - pattern.json: "pattern is not anchored" - "matches a substring" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 577 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 578 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 579 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/patternProperties/f.*o/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/patternProperties/f.*o/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 580 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/patternProperties/f.*o/type" 109s # }, 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/foooooo", 109s # "keywordLocation": "/patternProperties/f.*o/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/patternProperties/f.*o/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 581 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 582 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 583 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 584 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 585 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 586 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 587 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/a", 109s # "keywordLocation": "/patternProperties/a*/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/a", 109s # "keywordLocation": "/patternProperties/a*/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 588 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than 20", 109s # "instanceLocation": "/aaaa", 109s # "keywordLocation": "/patternProperties/aaa*/maximum" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than 20", 109s # "instanceLocation": "/aaaa", 109s # "keywordLocation": "/patternProperties/aaa*/maximum" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 589 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/aaa", 109s # "keywordLocation": "/patternProperties/a*/type" 109s # }, 109s # { 109s # "error": "value is greater than 20", 109s # "instanceLocation": "/aaaa", 109s # "keywordLocation": "/patternProperties/aaa*/maximum" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/aaa", 109s # "keywordLocation": "/patternProperties/a*/type" 109s # }, 109s # { 109s # "error": "value is greater than 20", 109s # "instanceLocation": "/aaaa", 109s # "keywordLocation": "/patternProperties/aaa*/maximum" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 590 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 591 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not boolean", 109s # "instanceLocation": "/a31b", 109s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not boolean", 109s # "instanceLocation": "/a31b", 109s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 592 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 593 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "/a_X_3", 109s # "keywordLocation": "/patternProperties/X_/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "/a_X_3", 109s # "keywordLocation": "/patternProperties/X_/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 594 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 595 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "property not permitted", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/patternProperties/b.*" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "property not permitted", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/patternProperties/b.*" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 596 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "property not permitted", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/patternProperties/b.*" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "property not permitted", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/patternProperties/b.*" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 597 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "property not permitted", 109s # "instanceLocation": "/foobar", 109s # "keywordLocation": "/patternProperties/b.*" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "property not permitted", 109s # "instanceLocation": "/foobar", 109s # "keywordLocation": "/patternProperties/b.*" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 598 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 599 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 600 - properties.json: "object properties validation" - "both properties present and valid is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 601 - properties.json: "object properties validation" - "one property invalid is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not string", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not string", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 602 - properties.json: "object properties validation" - "both properties invalid is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not string", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar/type" 109s # }, 109s # { 109s # "error": "got array, not integer", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not string", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 603 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 604 - properties.json: "object properties validation" - "ignores arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 605 - properties.json: "object properties validation" - "ignores other non-objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 606 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 607 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "array has more than 3 items", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/maxItems" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "array has more than 3 items", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/maxItems" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 608 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "array has fewer than 2 items", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/patternProperties/f.o/minItems" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "array has fewer than 2 items", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/patternProperties/f.o/minItems" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 609 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 610 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "array has fewer than 2 items", 109s # "instanceLocation": "/fxo", 109s # "keywordLocation": "/patternProperties/f.o/minItems" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "array has fewer than 2 items", 109s # "instanceLocation": "/fxo", 109s # "keywordLocation": "/patternProperties/f.o/minItems" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 611 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 612 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 613 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/quux", 109s # "keywordLocation": "/additionalProperties/type" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/quux", 109s # "keywordLocation": "/additionalProperties/type" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 614 - properties.json: "properties with boolean schema" - "no property present is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 615 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 616 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "property not permitted", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "property not permitted", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 617 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "property not permitted", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "property not permitted", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 618 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 619 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "/foo\tbar", 109s # "keywordLocation": "/properties/foo\tbar/type" 109s # }, 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "/foo\nbar", 109s # "keywordLocation": "/properties/foo\nbar/type" 109s # }, 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "/foo\fbar", 109s # "keywordLocation": "/properties/foo\fbar/type" 109s # }, 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "/foo\rbar", 109s # "keywordLocation": "/properties/foo\rbar/type" 109s # }, 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "/foo\"bar", 109s # "keywordLocation": "/properties/foo\"bar/type" 109s # }, 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "/foo\\bar", 109s # "keywordLocation": "/properties/foo\\bar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "/foo\tbar", 109s # "keywordLocation": "/properties/foo\tbar/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 620 - properties.json: "properties with null valued instance properties" - "allows null values" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 621 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 622 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 623 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 624 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "/__proto__", 109s # "keywordLocation": "/properties/__proto__/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "/__proto__", 109s # "keywordLocation": "/properties/__proto__/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 625 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "/toString/length", 109s # "keywordLocation": "/properties/toString/properties/length/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/toString", 109s # "keywordLocation": "/properties/toString/properties" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "/toString/length", 109s # "keywordLocation": "/properties/toString/properties/length/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/toString", 109s # "keywordLocation": "/properties/toString/properties" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 626 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not number", 109s # "instanceLocation": "/constructor", 109s # "keywordLocation": "/properties/constructor/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not number", 109s # "instanceLocation": "/constructor", 109s # "keywordLocation": "/properties/constructor/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 627 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 628 - propertyNames.json: "propertyNames validation" - "all property names valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 629 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "length is greater than 3", 109s # "instanceLocation": "/foobar", 109s # "keywordLocation": "/propertyNames/maxLength" 109s # }, 109s # { 109s # "error": "not all property names are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/propertyNames" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "length is greater than 3", 109s # "instanceLocation": "/foobar", 109s # "keywordLocation": "/propertyNames/maxLength" 109s # }, 109s # { 109s # "error": "not all property names are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/propertyNames" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 630 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 631 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 632 - propertyNames.json: "propertyNames validation" - "ignores strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 633 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 634 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 635 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "/aaA", 109s # "keywordLocation": "/propertyNames/pattern" 109s # }, 109s # { 109s # "error": "not all property names are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/propertyNames" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "/aaA", 109s # "keywordLocation": "/propertyNames/pattern" 109s # }, 109s # { 109s # "error": "not all property names are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/propertyNames" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 636 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 637 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 638 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 639 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/propertyNames" 109s # }, 109s # { 109s # "error": "not all property names are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/propertyNames" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "subschema is false", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/propertyNames" 109s # }, 109s # { 109s # "error": "not all property names are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/propertyNames" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 640 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 641 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 642 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/propertyNames/const" 109s # }, 109s # { 109s # "error": "not all property names are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/propertyNames" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/propertyNames/const" 109s # }, 109s # { 109s # "error": "not all property names are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/propertyNames" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 643 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 644 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 645 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 646 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/baz", 109s # "keywordLocation": "/propertyNames/enum" 109s # }, 109s # { 109s # "error": "not all property names are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/propertyNames" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "/baz", 109s # "keywordLocation": "/propertyNames/enum" 109s # }, 109s # { 109s # "error": "not all property names are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/propertyNames" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 647 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 648 - ref.json: "root pointer ref" - "match" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 649 - ref.json: "root pointer ref" - "recursive match" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 650 - ref.json: "root pointer ref" - "mismatch" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 651 - ref.json: "root pointer ref" - "recursive mismatch" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/additionalProperties", 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/foo/bar", 109s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "#/additionalProperties", 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/additionalProperties", 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/foo/bar", 109s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "#/additionalProperties", 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 652 - ref.json: "relative pointer ref to object" - "match" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 653 - ref.json: "relative pointer ref to object" - "mismatch" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/properties/foo/type", 109s # "error": "got boolean, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/properties/foo/type", 109s # "error": "got boolean, not integer", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/properties/bar/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 654 - ref.json: "relative pointer ref to array" - "match array" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 655 - ref.json: "relative pointer ref to array" - "mismatch array" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/items/0/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items/1/$ref/type" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/items/0/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/1", 109s # "keywordLocation": "/items/1/$ref/type" 109s # }, 109s # { 109s # "error": "not all items are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 656 - ref.json: "escaped pointer ref" - "slash invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/slash", 109s # "keywordLocation": "/properties/slash/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/slash", 109s # "keywordLocation": "/properties/slash/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 657 - ref.json: "escaped pointer ref" - "tilde invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/tilde", 109s # "keywordLocation": "/properties/tilde/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/tilde", 109s # "keywordLocation": "/properties/tilde/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 658 - ref.json: "escaped pointer ref" - "percent invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/percent", 109s # "keywordLocation": "/properties/percent/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/percent", 109s # "keywordLocation": "/properties/percent/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 659 - ref.json: "escaped pointer ref" - "slash valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 660 - ref.json: "escaped pointer ref" - "tilde valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 661 - ref.json: "escaped pointer ref" - "percent valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 662 - ref.json: "nested refs" - "nested ref valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 663 - ref.json: "nested refs" - "nested ref invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/a/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/a/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 664 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 665 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 666 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/reffed/type", 109s # "error": "got string, not array", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/reffed/type", 109s # "error": "got string, not array", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 667 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 668 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 669 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 670 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeInteger/minimum", 109s # "error": "value is less than 0", 109s # "instanceLocation": "/minLength", 109s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeIntegerDefault0/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "/minLength", 109s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeInteger/minimum", 109s # "error": "value is less than 0", 109s # "instanceLocation": "/minLength", 109s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeIntegerDefault0/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "/minLength", 109s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 671 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 672 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "/$ref", 109s # "keywordLocation": "/properties/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "/$ref", 109s # "keywordLocation": "/properties/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 673 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 674 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/is-string/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/$ref", 109s # "keywordLocation": "/properties/$ref/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/is-string/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/$ref", 109s # "keywordLocation": "/properties/$ref/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 675 - ref.json: "$ref to boolean schema true" - "any value is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 676 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/bool", 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/bool", 109s # "error": "subschema is false", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 677 - ref.json: "Recursive references between schemas" - "valid tree" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 678 - ref.json: "Recursive references between schemas" - "invalid tree" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 109s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/nodes/0/subtree/nodes/0", 109s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/nodes/0/subtree/nodes", 109s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/nodes/0/subtree", 109s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/nodes/0", 109s # "keywordLocation": "/properties/nodes/items/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/nodes", 109s # "keywordLocation": "/properties/nodes/items" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 109s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/nodes/0/subtree/nodes/0", 109s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/nodes/0/subtree/nodes", 109s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/nodes/0/subtree", 109s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/nodes/0", 109s # "keywordLocation": "/properties/nodes/items/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/nodes", 109s # "keywordLocation": "/properties/nodes/items" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 679 - ref.json: "refs with quote" - "object with numbers is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 680 - ref.json: "refs with quote" - "object with strings is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "/foo\"bar", 109s # "keywordLocation": "/properties/foo\"bar/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "/foo\"bar", 109s # "keywordLocation": "/properties/foo\"bar/$ref/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 681 - ref.json: "Location-independent identifier" - "match" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 682 - ref.json: "Location-independent identifier" - "mismatch" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/A/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/A/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 683 - ref.json: "Reference an anchor with a non-relative URI" - "match" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 684 - ref.json: "Reference an anchor with a non-relative URI" - "mismatch" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 685 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 686 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 687 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 688 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/enum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 689 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 690 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo/bar", 109s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo/bar", 109s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 691 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 692 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 693 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo/bar", 109s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo/bar", 109s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 694 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 695 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 696 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 697 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 698 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 699 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 109s # "error": "value is less than 30", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/minimum" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 109s # "error": "value is less than 30", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/minimum" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 700 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 701 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 702 - ref.json: "URN base URI with NSS" - "a string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 703 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 704 - ref.json: "URN base URI with r-component" - "a string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 705 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 706 - ref.json: "URN base URI with q-component" - "a string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 707 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 708 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 709 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 710 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 711 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/foo", 109s # "keywordLocation": "/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 712 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 713 - ref.json: "ref to if" - "an integer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 714 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 715 - ref.json: "ref to then" - "an integer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 716 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 717 - ref.json: "ref to else" - "an integer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 718 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 719 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 720 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 721 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 722 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 723 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 724 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 725 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions//definitions//type", 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions//definitions//type", 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/type" 109s # }, 109s # { 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 726 - refRemote.json: "remote ref" - "remote ref valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 727 - refRemote.json: "remote ref" - "remote ref invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 728 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 729 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 730 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 731 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/$ref/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/$ref/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 732 - refRemote.json: "base URI change" - "base URI change ref valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 733 - refRemote.json: "base URI change" - "base URI change ref invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/0/0", 109s # "keywordLocation": "/items/items/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/items" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/0/0", 109s # "keywordLocation": "/items/items/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/0", 109s # "keywordLocation": "/items/items" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/items" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 734 - refRemote.json: "base URI change - change folder" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 735 - refRemote.json: "base URI change - change folder" - "string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/list/0", 109s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/list", 109s # "keywordLocation": "/properties/list/$ref/items" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/list/0", 109s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/list", 109s # "keywordLocation": "/properties/list/$ref/items" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 736 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 737 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/list/0", 109s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/list", 109s # "keywordLocation": "/properties/list/$ref/items" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "/list/0", 109s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 109s # "error": "subschema is not valid against all items", 109s # "instanceLocation": "/list", 109s # "keywordLocation": "/properties/list/$ref/items" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 738 - refRemote.json: "root ref in remote ref" - "string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 739 - refRemote.json: "root ref in remote ref" - "null is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 740 - refRemote.json: "root ref in remote ref" - "object is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf/0/type", 109s # "error": "got object, not null", 109s # "instanceLocation": "/name", 109s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/type", 109s # "error": "got object, not string", 109s # "instanceLocation": "/name", 109s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf", 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "/name", 109s # "keywordLocation": "/properties/name/$ref/anyOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf/0/type", 109s # "error": "got object, not null", 109s # "instanceLocation": "/name", 109s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/type", 109s # "error": "got object, not string", 109s # "instanceLocation": "/name", 109s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf", 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "/name", 109s # "keywordLocation": "/properties/name/$ref/anyOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 741 - refRemote.json: "remote ref with ref to definitions" - "invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties/bar/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/bar", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/0/$ref/allOf" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 109s # "error": "subschema 0 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 742 - refRemote.json: "remote ref with ref to definitions" - "valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 743 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 744 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/locationIndependentIdentifier.json#/definitions/A/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/$ref/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/locationIndependentIdentifier.json#/definitions/A/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/$ref/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 745 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/name/foo", 109s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/name", 109s # "keywordLocation": "/properties/name/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "/name/foo", 109s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "/name", 109s # "keywordLocation": "/properties/name/$ref/properties" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/properties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 746 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 747 - refRemote.json: "$ref to $ref finds location-independent $id" - "number is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 748 - refRemote.json: "$ref to $ref finds location-independent $id" - "non-number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/detached-ref.json#/definitions/detached/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/$ref/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft7/detached-ref.json#/definitions/detached/type", 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/$ref/$ref/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 749 - required.json: "required validation" - "present required property is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 750 - required.json: "required validation" - "non-present required property is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing property: foo", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 751 - required.json: "required validation" - "ignores arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 752 - required.json: "required validation" - "ignores strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 753 - required.json: "required validation" - "ignores other non-objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 754 - required.json: "required default validation" - "not required by default" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 755 - required.json: "required with empty array" - "property not required" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 756 - required.json: "required with escaped characters" - "object with all properties present is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 757 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 758 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 759 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 760 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: __proto__, toString, constructor", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: __proto__, toString, constructor", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 761 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: toString, constructor", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: toString, constructor", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 762 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: __proto__, constructor", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: __proto__, constructor", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 763 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: __proto__, toString", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "object is missing properties: __proto__, toString", 109s # "instanceLocation": "", 109s # "keywordLocation": "/required" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 764 - required.json: "required properties whose names are Javascript object property names" - "all present" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 765 - type.json: "integer type matches integers" - "an integer is an integer" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 766 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 767 - type.json: "integer type matches integers" - "a float is not an integer" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 768 - type.json: "integer type matches integers" - "a string is not an integer" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 769 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 770 - type.json: "integer type matches integers" - "an object is not an integer" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 771 - type.json: "integer type matches integers" - "an array is not an integer" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 772 - type.json: "integer type matches integers" - "a boolean is not an integer" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 773 - type.json: "integer type matches integers" - "null is not an integer" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not integer", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 774 - type.json: "number type matches numbers" - "an integer is a number" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 775 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 776 - type.json: "number type matches numbers" - "a float is a number" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 777 - type.json: "number type matches numbers" - "a string is not a number" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 778 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 779 - type.json: "number type matches numbers" - "an object is not a number" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 780 - type.json: "number type matches numbers" - "an array is not a number" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 781 - type.json: "number type matches numbers" - "a boolean is not a number" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 782 - type.json: "number type matches numbers" - "null is not a number" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not number", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 783 - type.json: "string type matches strings" - "1 is not a string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 784 - type.json: "string type matches strings" - "a float is not a string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 785 - type.json: "string type matches strings" - "a string is a string" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 786 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 787 - type.json: "string type matches strings" - "an empty string is still a string" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 788 - type.json: "string type matches strings" - "an object is not a string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 789 - type.json: "string type matches strings" - "an array is not a string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 790 - type.json: "string type matches strings" - "a boolean is not a string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 791 - type.json: "string type matches strings" - "null is not a string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 792 - type.json: "object type matches objects" - "an integer is not an object" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 793 - type.json: "object type matches objects" - "a float is not an object" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 794 - type.json: "object type matches objects" - "a string is not an object" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 795 - type.json: "object type matches objects" - "an object is an object" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 796 - type.json: "object type matches objects" - "an array is not an object" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 797 - type.json: "object type matches objects" - "a boolean is not an object" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 798 - type.json: "object type matches objects" - "null is not an object" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 799 - type.json: "array type matches arrays" - "an integer is not an array" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 800 - type.json: "array type matches arrays" - "a float is not an array" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 801 - type.json: "array type matches arrays" - "a string is not an array" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 802 - type.json: "array type matches arrays" - "an object is not an array" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 803 - type.json: "array type matches arrays" - "an array is an array" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 804 - type.json: "array type matches arrays" - "a boolean is not an array" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 805 - type.json: "array type matches arrays" - "null is not an array" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not array", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 806 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 807 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 808 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 809 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 810 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 811 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 812 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 813 - type.json: "boolean type matches booleans" - "true is a boolean" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 814 - type.json: "boolean type matches booleans" - "false is a boolean" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 815 - type.json: "boolean type matches booleans" - "null is not a boolean" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not boolean", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 816 - type.json: "null type matches only the null object" - "an integer is not null" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 817 - type.json: "null type matches only the null object" - "a float is not null" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 818 - type.json: "null type matches only the null object" - "zero is not null" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 819 - type.json: "null type matches only the null object" - "a string is not null" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 820 - type.json: "null type matches only the null object" - "an empty string is not null" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 821 - type.json: "null type matches only the null object" - "an object is not null" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 822 - type.json: "null type matches only the null object" - "an array is not null" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 823 - type.json: "null type matches only the null object" - "true is not null" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 824 - type.json: "null type matches only the null object" - "false is not null" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 825 - type.json: "null type matches only the null object" - "null is null" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 826 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 827 - type.json: "multiple types can be specified in an array" - "a string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 828 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not one of integer, string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got number, not one of integer, string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 829 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not one of integer, string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got object, not one of integer, string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 830 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not one of integer, string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got array, not one of integer, string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 831 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not one of integer, string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got boolean, not one of integer, string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 832 - type.json: "multiple types can be specified in an array" - "null is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not one of integer, string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not one of integer, string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 833 - type.json: "type as array with one item" - "string is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 834 - type.json: "type as array with one item" - "number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not one of string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not one of string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 835 - type.json: "type: array or object" - "array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 836 - type.json: "type: array or object" - "object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 837 - type.json: "type: array or object" - "number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not one of array, object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not one of array, object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 838 - type.json: "type: array or object" - "string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not one of array, object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not one of array, object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 839 - type.json: "type: array or object" - "null is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not one of array, object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got null, not one of array, object", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 840 - type.json: "type: array, object or null" - "array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 841 - type.json: "type: array, object or null" - "object is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 842 - type.json: "type: array, object or null" - "null is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 843 - type.json: "type: array, object or null" - "number is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not one of array, object, null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not one of array, object, null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 844 - type.json: "type: array, object or null" - "string is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not one of array, object, null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not one of array, object, null", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 845 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 846 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 847 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 2 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 2 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 848 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 849 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 850 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 851 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 852 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 2 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 2 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 853 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 854 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 855 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 856 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 857 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 858 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 859 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 860 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 2 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 2 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 861 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 862 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 863 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 864 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 865 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 866 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 867 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 868 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 4 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 4 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 869 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 870 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 871 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 872 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 873 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 874 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 875 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 876 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 877 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 878 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 879 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 2 and 3 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 2 and 3 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 880 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 2 and 3 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 2 and 3 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 881 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 882 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 883 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 884 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "items at indices 0 and 1 are not unique", 109s # "instanceLocation": "", 109s # "keywordLocation": "/uniqueItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 885 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/additionalItems" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/additionalItems" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 886 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 887 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 888 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 889 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 890 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 891 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 892 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 893 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 894 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 895 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 896 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 897 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 898 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 899 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 900 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 901 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 902 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 903 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 904 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 905 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 906 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 907 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 908 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 909 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 910 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 911 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 912 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 913 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/additionalItems" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional item not permitted", 109s # "instanceLocation": "/2", 109s # "keywordLocation": "/additionalItems" 109s # }, 109s # { 109s # "error": "subschema is not valid against all additional items", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalItems" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 914 - optional/bignum.json: "integer" - "a bignum is an integer" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 915 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 916 - optional/bignum.json: "number" - "a bignum is a number" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 917 - optional/bignum.json: "number" - "a negative bignum is a number" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 918 - optional/bignum.json: "string" - "a bignum is not a string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/type" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 919 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 920 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMaximum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMaximum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 921 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 922 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMinimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 109s # "instanceLocation": "", 109s # "keywordLocation": "/exclusiveMinimum" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 923 - optional/content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 924 - optional/content.json: "validation of string-encoded content based on media type" - "an invalid JSON document" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contentMediaType" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contentMediaType" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 925 - optional/content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 926 - optional/content.json: "validation of binary string-encoding" - "a valid base64 string" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 927 - optional/content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character)" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "could not decode base64 string: invalid characters", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contentEncoding" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "could not decode base64 string: invalid characters", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contentEncoding" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 928 - optional/content.json: "validation of binary string-encoding" - "ignores non-strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 929 - optional/content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 930 - optional/content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\\n\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contentMediaType" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\\n\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contentMediaType" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 931 - optional/content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "could not decode base64 string: invalid characters", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contentEncoding" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "could not decode base64 string: invalid characters", 109s # "instanceLocation": "", 109s # "keywordLocation": "/contentEncoding" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 932 - optional/content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 933 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "missing bar is invalid" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired/foo", 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/$ref/dependentRequired/foo" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired", 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/$ref/dependentRequired" 109s # }, 109s # { 109s # "error": "subschema 1 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired/foo", 109s # "error": "object is missing property: bar", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/$ref/dependentRequired/foo" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired", 109s # "error": "not all dependencies are satisfied", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf/1/$ref/dependentRequired" 109s # }, 109s # { 109s # "error": "subschema 1 is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/allOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 934 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "present bar is valid" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 935 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 936 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 937 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 938 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 939 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 940 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 941 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 942 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 943 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true # 109s 1..1 109s } 109s ok 944 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected false; got true 109s # schema: { 109s # "pattern": "^\\d$", 109s # "type": "string" 109s # } 109s # data: "߀" 109s # result: 1 109s 1..1 109s } 109s ok 945 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "NKO DIGIT ZERO (as \u escape) does not match" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected false; got true 109s # schema: { 109s # "pattern": "^\\d$", 109s # "type": "string" 109s # } 109s # data: "߀" 109s # result: 1 109s 1..1 109s } 109s ok 946 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false # 109s 1..1 109s } 109s ok 947 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected true; got false 109s # schema: { 109s # "pattern": "^\\D$", 109s # "type": "string" 109s # } 109s # data: "߀" 109s # result: 0 109s 1..1 109s } 109s ok 948 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "NKO DIGIT ZERO (as \u escape) matches" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected true; got false 109s # schema: { 109s # "pattern": "^\\D$", 109s # "type": "string" 109s # } 109s # data: "߀" 109s # result: 0 109s 1..1 109s } 109s ok 949 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true # 109s 1..1 109s } 109s ok 950 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "latin-1 e-acute does not match (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected false; got true 109s # schema: { 109s # "pattern": "^\\w$", 109s # "type": "string" 109s # } 109s # data: "é" 109s # result: 1 109s 1..1 109s } 109s ok 951 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false # 109s 1..1 109s } 109s ok 952 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "latin-1 e-acute matches (unlike e.g. Python)" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected true; got false 109s # schema: { 109s # "pattern": "^\\W$", 109s # "type": "string" 109s # } 109s # data: "é" 109s # result: 0 109s 1..1 109s } 109s ok 953 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 954 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 955 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 956 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 957 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 958 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected true; got false 109s # schema: { 109s # "pattern": "^\\s$", 109s # "type": "string" 109s # } 109s # data: "" 109s # result: 0 109s 1..1 109s } 109s ok 959 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 960 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 961 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 962 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 963 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 964 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 965 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 966 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 967 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 968 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 969 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected false; got true 109s # schema: { 109s # "pattern": "^\\S$", 109s # "type": "string" 109s # } 109s # data: "" 109s # result: 1 109s 1..1 109s } 109s ok 970 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 971 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 972 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 973 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 974 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 975 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 976 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 977 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 978 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 979 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 980 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected false; got true 109s # schema: { 109s # "pattern": "\\wcole" 109s # } 109s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 109s # result: 1 109s 1..1 109s } 109s ok 981 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected false; got true 109s # schema: { 109s # "pattern": "\\wcole" 109s # } 109s # data: "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire." 109s # result: 1 109s 1..1 109s } 109s ok 982 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 983 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 984 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 985 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 986 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 987 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 988 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected false; got true 109s # schema: { 109s # "pattern": "^\\d+$" 109s # } 109s # data: "৪২" 109s # result: 1 109s 1..1 109s } 109s ok 989 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 990 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 991 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 992 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 993 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 994 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 995 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/L'ÉCOLE", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/L'ÉCOLE", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 996 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 997 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "literal unicode character in json string" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected false; got true 109s # schema: { 109s # "additionalProperties": false, 109s # "patternProperties": { 109s # "\\wcole": true 109s # }, 109s # "type": "object" 109s # } 109s # data: { 109s # "l'école": "pas de vraie vie" 109s # } 109s # result: 1 109s 1..1 109s } 109s ok 998 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode character in hex format in string" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected false; got true 109s # schema: { 109s # "additionalProperties": false, 109s # "patternProperties": { 109s # "\\wcole": true 109s # }, 109s # "type": "object" 109s # } 109s # data: { 109s # "l'école": "pas de vraie vie" 109s # } 109s # result: 1 109s 1..1 109s } 109s ok 999 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/L'ÉCOLE", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/L'ÉCOLE", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1000 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/l'école", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/l'école", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1001 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/l'école", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/l'école", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1002 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1003 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1004 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/-%#", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/-%#", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1005 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { # TODO Test marked TODO via "todo_tests" 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s not ok 1 - evaluation result is incorrect # 109s # Failed test (with amnesty) 'evaluation result is incorrect' 109s # at t/zzz-acceptance-draft7.t line 51. 109s # expected false; got true 109s # schema: { 109s # "additionalProperties": false, 109s # "patternProperties": { 109s # "^\\d+$": true 109s # }, 109s # "type": "object" 109s # } 109s # data: { 109s # "৪২": "khajit has wares if you have coin" 109s # } 109s # result: 1 109s 1..1 109s } 109s ok 1006 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1007 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/-%#", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "additional property not permitted", 109s # "instanceLocation": "/-%#", 109s # "keywordLocation": "/additionalProperties" 109s # }, 109s # { 109s # "error": "not all additional properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/additionalProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1008 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 1009 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s # 109s ok 1010 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1011 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1012 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/$ref/enum" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/$ref/type" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/$ref/enum" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/$ref/type" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1013 - optional/id.json: "non-schema object containing a plain-name $id property" - "skip traversing definition for a valid result" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1014 - optional/id.json: "non-schema object containing a plain-name $id property" - "const at const_not_anchor does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/$ref/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/$ref/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1015 - optional/id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1016 - optional/id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/$ref/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 109s # "error": "value does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else/$ref/const" 109s # }, 109s # { 109s # "error": "subschema is not valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/else" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 1017 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1018 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1019 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1020 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1021 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1022 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1023 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "pattern does not match", 109s # "instanceLocation": "", 109s # "keywordLocation": "/pattern" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1024 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1025 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1026 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1027 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/🐲", 109s # "keywordLocation": "/patternProperties/^🐲*$/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/🐲", 109s # "keywordLocation": "/patternProperties/^🐲*$/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1028 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 109s # result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/🐲🐲", 109s # "keywordLocation": "/patternProperties/^🐲*$/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "error": "got string, not integer", 109s # "instanceLocation": "/🐲🐲", 109s # "keywordLocation": "/patternProperties/^🐲*$/type" 109s # }, 109s # { 109s # "error": "not all properties are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/patternProperties" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s ok 1029 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 109s # result: { 109s # "valid": true 109s # } 109s # short-circuited result: { 109s # "valid": true 109s # } 109s ok 1 - test passes: data is valid: true 109s 1..1 109s } 109s ok 1030 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/$ref/not" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/$ref/not" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 109s # "error": "got null, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/2/$ref/type" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/$ref/not" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/$ref/not" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 109s # "error": "got null, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/2/$ref/type" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s ok 1031 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 109s # result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/$ref/not" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/$ref/not" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/2/$ref/type" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s # short-circuited result: { 109s # "errors": [ 109s # { 109s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/0/$ref/not" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 109s # "error": "subschema is valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/1/$ref/not" 109s # }, 109s # { 109s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 109s # "error": "got integer, not string", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf/2/$ref/type" 109s # }, 109s # { 109s # "error": "no subschemas are valid", 109s # "instanceLocation": "", 109s # "keywordLocation": "/anyOf" 109s # } 109s # ], 109s # "valid": false 109s # } 109s ok 1 - test passes: data is valid: false 109s 1..1 109s } 109s # 109s # generated with: Test::JSON::Schema::Acceptance 1.029 109s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 109s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 109s # specification version: draft7 109s # optional tests included: yes 109s # skipping directory: optional/format 109s # 109s # filename pass todo-fail fail 109s # --------------------------------------------------------------- 109s # additionalItems.json 20 0 0 109s # additionalProperties.json 16 0 0 109s # allOf.json 30 0 0 109s # anyOf.json 18 0 0 109s # boolean_schema.json 18 0 0 109s # const.json 50 0 0 109s # contains.json 21 0 0 109s # default.json 7 0 0 109s # definitions.json 2 0 0 109s # dependencies.json 36 0 0 109s # enum.json 45 0 0 109s # exclusiveMaximum.json 4 0 0 109s # exclusiveMinimum.json 4 0 0 109s # format.json 102 0 0 109s # if-then-else.json 26 0 0 109s # infinite-loop-detection.json 2 0 0 109s # items.json 28 0 0 109s # maxItems.json 6 0 0 109s # maxLength.json 7 0 0 109s # maxProperties.json 10 0 0 109s # maximum.json 8 0 0 109s # minItems.json 6 0 0 109s # minLength.json 7 0 0 109s # minProperties.json 8 0 0 109s # minimum.json 11 0 0 109s # multipleOf.json 10 0 0 109s # not.json 38 0 0 109s # oneOf.json 27 0 0 109s # pattern.json 9 0 0 109s # patternProperties.json 23 0 0 109s # properties.json 28 0 0 109s # propertyNames.json 20 0 0 109s # ref.json 78 0 0 109s # refRemote.json 23 0 0 109s # required.json 16 0 0 109s # type.json 80 0 0 109s # uniqueItems.json 69 0 0 109s # optional/bignum.json 9 0 0 109s # optional/content.json 10 0 0 109s # optional/cross-draft.json 2 0 0 109s # optional/ecmascript-regex.json 60 14 0 109s # optional/float-overflow.json 1 0 0 109s # optional/id.json 7 0 0 109s # optional/non-bmp-regex.json 12 0 0 109s # optional/unknownKeyword.json 3 0 0 109s # --------------------------------------------------------------- 109s # TOTAL 1017 14 0 109s # 109s # Congratulations, all non-optional tests are passing! 109s # 109s ok 1032 - no leaks in the main evaluator object 109s ok 1033 - no leaks in the short-circuiting evaluator object 109s 1..1033 109s ok 109s t/zzz-check-breaks.t .................... 109s 1..2 109s ok 1 # skip no conflicts module found to check against 109s ok 2 - checked x_breaks data 109s ok 109s All tests successful. 109s 109s Test Summary Report 109s ------------------- 109s t/zzz-acceptance-draft2019-09-format.t (Wstat: 0 Tests: 485 Failed: 0) 109s TODO passed: 149-205, 270-282, 294, 427-436, 462 109s t/zzz-acceptance-draft2019-09.t (Wstat: 0 Tests: 1383 Failed: 0) 109s TODO passed: 1244-1279, 1288-1297, 1303, 1314, 1325-1326 109s 1333, 1342-1343, 1350, 1373-1378 109s t/zzz-acceptance-draft2020-12-format.t (Wstat: 0 Tests: 493 Failed: 0) 109s TODO passed: 99, 120-121, 157-213, 278-290, 302, 435-444 109s 470 109s t/zzz-acceptance-draft2020-12.t (Wstat: 0 Tests: 1417 Failed: 0) 109s TODO passed: 1272-1307, 1318-1327, 1333, 1344, 1355-1356 109s 1363, 1372-1373, 1380, 1407-1412 109s t/zzz-acceptance-draft4-format.t (Wstat: 0 Tests: 155 Failed: 0) 109s TODO passed: 153 109s t/zzz-acceptance-draft4.t (Wstat: 0 Tests: 712 Failed: 0) 109s TODO passed: 628-637, 643, 654, 665-666, 673, 682-683 109s 690 109s t/zzz-acceptance-draft6-format.t (Wstat: 0 Tests: 216 Failed: 0) 109s TODO passed: 179-188, 214 109s t/zzz-acceptance-draft6.t (Wstat: 0 Tests: 937 Failed: 0) 109s TODO passed: 847-856, 862, 873, 884-885, 892, 901-902 109s 909 109s t/zzz-acceptance-draft7-format.t (Wstat: 0 Tests: 436 Failed: 0) 109s TODO passed: 122-177, 242-254, 266, 399-408, 434 109s t/zzz-acceptance-draft7.t (Wstat: 0 Tests: 1033 Failed: 0) 109s TODO passed: 943-952, 958, 969, 980-981, 988, 997-998 109s 1005 109s Files=45, Tests=10461, 47 wallclock secs ( 2.65 usr 0.12 sys + 44.80 cusr 1.79 csys = 49.36 CPU) 109s Result: PASS 110s autopkgtest [20:31:28]: test autodep8-perl-build-deps: -----------------------] 111s autodep8-perl-build-deps PASS 111s autopkgtest [20:31:29]: test autodep8-perl-build-deps: - - - - - - - - - - results - - - - - - - - - - 111s autopkgtest [20:31:29]: test autodep8-perl: preparing testbed 118s Creating nova instance adt-resolute-i386-libjson-schema-modern-perl-20251029-202938-juju-7f2275-prod-proposed-migration-environment-2-4cd6a932-10ab-41f1-9225-74d787d591ef from image adt/ubuntu-resolute-amd64-server-20251029.img (UUID 2345c089-5627-4919-bdd0-dff8360b43c0)... 145s autopkgtest [20:32:03]: testbed dpkg architecture: amd64 145s autopkgtest [20:32:03]: testbed apt version: 3.1.11 146s autopkgtest [20:32:04]: @@@@@@@@@@@@@@@@@@@@ test bed setup 146s autopkgtest [20:32:04]: testbed release detected to be: resolute 147s autopkgtest [20:32:05]: updating testbed package index (apt update) 147s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 147s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 147s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 147s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 147s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5856 B] 147s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [70.5 kB] 147s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [3669 kB] 148s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [206 kB] 148s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [188 kB] 148s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [290 kB] 148s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [5760 B] 148s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [28.6 kB] 148s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [4212 B] 148s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [336 B] 148s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [1142 kB] 148s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [2594 kB] 148s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [72.3 kB] 148s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [19.9 kB] 148s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [47.3 kB] 148s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [2068 B] 149s Fetched 8434 kB in 1s (6962 kB/s) 149s Reading package lists... 150s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 150s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 150s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 150s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 151s Reading package lists... 151s Reading package lists... 151s Building dependency tree... 151s Reading state information... 151s Calculating upgrade... 151s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 151s autopkgtest [20:32:09]: upgrading testbed (apt dist-upgrade and autopurge) 151s Reading package lists... 151s Building dependency tree... 151s Reading state information... 151s Calculating upgrade... 151s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 152s Reading package lists... 152s Building dependency tree... 152s Reading state information... 152s Solving dependencies... 152s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 154s Reading package lists... 154s Building dependency tree... 154s Reading state information... 155s Solving dependencies... 155s The following NEW packages will be installed: 155s autodep8 dctrl-tools javascript-common libautovivification-perl 155s libb-hooks-endofscope-perl libb-hooks-op-check-perl libbuiltin-compat-perl 155s libclass-inspector-perl libclass-method-modifiers-perl 155s libclass-xsaccessor-perl libcpanel-json-xs-perl libdata-optlist-perl 155s libdevel-callchecker-perl libdynaloader-functions-perl libexporter-tiny-perl 155s libfeature-compat-try-perl libfile-sharedir-perl 155s libgetopt-long-descriptive-perl libimport-into-perl libio-stringy-perl 155s libjs-bootstrap5 libjs-highlight.js libjs-popper.js 155s libjson-schema-modern-perl libmodule-implementation-perl 155s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 155s libnamespace-clean-perl libpackage-stash-perl libparams-classify-perl 155s libparams-util-perl libparams-validate-perl libpath-tiny-perl 155s libref-util-perl librole-tiny-perl libsafe-isa-perl libstrictures-perl 155s libsub-exporter-perl libsub-exporter-progressive-perl libsub-identify-perl 155s libsub-install-perl libsub-name-perl libsub-quote-perl 155s libsyntax-keyword-try-perl libtry-tiny-perl libtype-tiny-perl 155s libvariable-magic-perl libxs-parse-keyword-perl node-popper2 155s pkg-perl-autopkgtest 155s 0 upgraded, 52 newly installed, 0 to remove and 0 not upgraded. 155s Need to get 3353 kB of archives. 155s After this operation, 17.5 MB of additional disk space will be used. 155s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 dctrl-tools amd64 2.24-3build3 [106 kB] 155s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 autodep8 all 0.30 [13.7 kB] 155s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 javascript-common all 12+nmu1 [4828 B] 155s Get:4 http://ftpmaster.internal/ubuntu resolute/universe amd64 libautovivification-perl amd64 0.18-2build5 [22.6 kB] 155s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libb-hooks-op-check-perl amd64 0.22-3build2 [9624 B] 155s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 libdynaloader-functions-perl all 0.004-2 [11.5 kB] 155s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 libdevel-callchecker-perl amd64 0.009-2 [14.2 kB] 155s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libparams-classify-perl amd64 0.015-2build6 [20.1 kB] 155s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libmodule-runtime-perl all 0.018-1 [15.2 kB] 155s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 libtry-tiny-perl all 0.32-1 [21.2 kB] 155s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 libmodule-implementation-perl all 0.09-2 [12.0 kB] 155s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-exporter-progressive-perl all 0.001013-3 [6718 B] 155s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 libvariable-magic-perl amd64 0.64-1build1 [36.3 kB] 155s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 libb-hooks-endofscope-perl all 0.28-2 [15.8 kB] 155s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 libpackage-stash-perl all 0.40-1 [19.5 kB] 155s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-identify-perl amd64 0.14-3build4 [9904 B] 155s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-name-perl amd64 0.28-1 [10.7 kB] 155s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 libnamespace-clean-perl all 0.27-2 [14.0 kB] 155s Get:19 http://ftpmaster.internal/ubuntu resolute/universe amd64 libbuiltin-compat-perl all 0.003003-2 [6956 B] 155s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-inspector-perl all 1.36-3 [15.4 kB] 155s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-method-modifiers-perl all 2.15-1 [16.1 kB] 155s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-xsaccessor-perl amd64 1.19-4build6 [33.8 kB] 155s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 libcpanel-json-xs-perl amd64 4.39-2 [116 kB] 155s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 libparams-util-perl amd64 1.102-3build1 [21.4 kB] 155s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-install-perl all 0.929-1 [9764 B] 155s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 libdata-optlist-perl all 0.114-1 [9708 B] 155s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 libexporter-tiny-perl all 1.006002-1 [36.8 kB] 155s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-sharedir-perl all 1.118-3 [14.0 kB] 155s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 libxs-parse-keyword-perl amd64 0.48-2 [63.0 kB] 155s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 libsyntax-keyword-try-perl amd64 0.30-1 [24.4 kB] 155s Get:31 http://ftpmaster.internal/ubuntu resolute/universe amd64 libfeature-compat-try-perl all 0.05-1 [9998 B] 155s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 libio-stringy-perl all 2.113-2 [45.3 kB] 155s Get:33 http://ftpmaster.internal/ubuntu resolute/universe amd64 libparams-validate-perl amd64 1.31-2build4 [53.7 kB] 155s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-exporter-perl all 0.990-1 [49.0 kB] 155s Get:35 http://ftpmaster.internal/ubuntu resolute/universe amd64 libgetopt-long-descriptive-perl all 0.116-2 [25.0 kB] 155s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 libimport-into-perl all 1.002005-2 [10.7 kB] 155s Get:37 http://ftpmaster.internal/ubuntu resolute/universe amd64 node-popper2 all 2.11.2-9 [106 kB] 155s Get:38 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-bootstrap5 all 5.3.5+dfsg-4 [479 kB] 155s Get:39 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 155s Get:40 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 155s Get:41 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmojolicious-perl all 9.39+dfsg-1 [761 kB] 155s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 librole-tiny-perl all 2.002004-1 [16.3 kB] 155s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-quote-perl all 2.006008-1ubuntu1 [20.7 kB] 155s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 libmoo-perl all 2.005005-1 [47.4 kB] 155s Get:45 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtype-tiny-perl all 2.004000-2 [340 kB] 155s Get:46 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmoox-typetiny-perl all 0.002003-4 [5930 B] 155s Get:47 http://ftpmaster.internal/ubuntu resolute/main amd64 libpath-tiny-perl all 0.148-1 [47.9 kB] 155s Get:48 http://ftpmaster.internal/ubuntu resolute/universe amd64 libref-util-perl all 0.204-2 [15.1 kB] 155s Get:49 http://ftpmaster.internal/ubuntu resolute/universe amd64 libsafe-isa-perl all 1.000010-1 [7684 B] 155s Get:50 http://ftpmaster.internal/ubuntu resolute/main amd64 libstrictures-perl all 2.000006-1 [16.3 kB] 155s Get:51 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjson-schema-modern-perl all 0.611-1 [106 kB] 155s Get:52 http://ftpmaster.internal/ubuntu resolute/universe amd64 pkg-perl-autopkgtest all 0.82 [18.8 kB] 155s Fetched 3353 kB in 0s (8144 kB/s) 155s Selecting previously unselected package dctrl-tools. 155s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 78531 files and directories currently installed.) 155s Preparing to unpack .../00-dctrl-tools_2.24-3build3_amd64.deb ... 155s Unpacking dctrl-tools (2.24-3build3) ... 155s Selecting previously unselected package autodep8. 155s Preparing to unpack .../01-autodep8_0.30_all.deb ... 155s Unpacking autodep8 (0.30) ... 155s Selecting previously unselected package javascript-common. 155s Preparing to unpack .../02-javascript-common_12+nmu1_all.deb ... 155s Unpacking javascript-common (12+nmu1) ... 155s Selecting previously unselected package libautovivification-perl:amd64. 155s Preparing to unpack .../03-libautovivification-perl_0.18-2build5_amd64.deb ... 155s Unpacking libautovivification-perl:amd64 (0.18-2build5) ... 155s Selecting previously unselected package libb-hooks-op-check-perl:amd64. 155s Preparing to unpack .../04-libb-hooks-op-check-perl_0.22-3build2_amd64.deb ... 155s Unpacking libb-hooks-op-check-perl:amd64 (0.22-3build2) ... 155s Selecting previously unselected package libdynaloader-functions-perl. 155s Preparing to unpack .../05-libdynaloader-functions-perl_0.004-2_all.deb ... 155s Unpacking libdynaloader-functions-perl (0.004-2) ... 155s Selecting previously unselected package libdevel-callchecker-perl:amd64. 155s Preparing to unpack .../06-libdevel-callchecker-perl_0.009-2_amd64.deb ... 155s Unpacking libdevel-callchecker-perl:amd64 (0.009-2) ... 155s Selecting previously unselected package libparams-classify-perl:amd64. 155s Preparing to unpack .../07-libparams-classify-perl_0.015-2build6_amd64.deb ... 155s Unpacking libparams-classify-perl:amd64 (0.015-2build6) ... 155s Selecting previously unselected package libmodule-runtime-perl. 155s Preparing to unpack .../08-libmodule-runtime-perl_0.018-1_all.deb ... 155s Unpacking libmodule-runtime-perl (0.018-1) ... 155s Selecting previously unselected package libtry-tiny-perl. 155s Preparing to unpack .../09-libtry-tiny-perl_0.32-1_all.deb ... 155s Unpacking libtry-tiny-perl (0.32-1) ... 156s Selecting previously unselected package libmodule-implementation-perl. 156s Preparing to unpack .../10-libmodule-implementation-perl_0.09-2_all.deb ... 156s Unpacking libmodule-implementation-perl (0.09-2) ... 156s Selecting previously unselected package libsub-exporter-progressive-perl. 156s Preparing to unpack .../11-libsub-exporter-progressive-perl_0.001013-3_all.deb ... 156s Unpacking libsub-exporter-progressive-perl (0.001013-3) ... 156s Selecting previously unselected package libvariable-magic-perl. 156s Preparing to unpack .../12-libvariable-magic-perl_0.64-1build1_amd64.deb ... 156s Unpacking libvariable-magic-perl (0.64-1build1) ... 156s Selecting previously unselected package libb-hooks-endofscope-perl. 156s Preparing to unpack .../13-libb-hooks-endofscope-perl_0.28-2_all.deb ... 156s Unpacking libb-hooks-endofscope-perl (0.28-2) ... 156s Selecting previously unselected package libpackage-stash-perl. 156s Preparing to unpack .../14-libpackage-stash-perl_0.40-1_all.deb ... 156s Unpacking libpackage-stash-perl (0.40-1) ... 156s Selecting previously unselected package libsub-identify-perl. 156s Preparing to unpack .../15-libsub-identify-perl_0.14-3build4_amd64.deb ... 156s Unpacking libsub-identify-perl (0.14-3build4) ... 156s Selecting previously unselected package libsub-name-perl:amd64. 156s Preparing to unpack .../16-libsub-name-perl_0.28-1_amd64.deb ... 156s Unpacking libsub-name-perl:amd64 (0.28-1) ... 156s Selecting previously unselected package libnamespace-clean-perl. 156s Preparing to unpack .../17-libnamespace-clean-perl_0.27-2_all.deb ... 156s Unpacking libnamespace-clean-perl (0.27-2) ... 156s Selecting previously unselected package libbuiltin-compat-perl. 156s Preparing to unpack .../18-libbuiltin-compat-perl_0.003003-2_all.deb ... 156s Unpacking libbuiltin-compat-perl (0.003003-2) ... 156s Selecting previously unselected package libclass-inspector-perl. 156s Preparing to unpack .../19-libclass-inspector-perl_1.36-3_all.deb ... 156s Unpacking libclass-inspector-perl (1.36-3) ... 156s Selecting previously unselected package libclass-method-modifiers-perl. 156s Preparing to unpack .../20-libclass-method-modifiers-perl_2.15-1_all.deb ... 156s Unpacking libclass-method-modifiers-perl (2.15-1) ... 156s Selecting previously unselected package libclass-xsaccessor-perl. 156s Preparing to unpack .../21-libclass-xsaccessor-perl_1.19-4build6_amd64.deb ... 156s Unpacking libclass-xsaccessor-perl (1.19-4build6) ... 156s Selecting previously unselected package libcpanel-json-xs-perl:amd64. 156s Preparing to unpack .../22-libcpanel-json-xs-perl_4.39-2_amd64.deb ... 156s Unpacking libcpanel-json-xs-perl:amd64 (4.39-2) ... 156s Selecting previously unselected package libparams-util-perl. 156s Preparing to unpack .../23-libparams-util-perl_1.102-3build1_amd64.deb ... 156s Unpacking libparams-util-perl (1.102-3build1) ... 156s Selecting previously unselected package libsub-install-perl. 156s Preparing to unpack .../24-libsub-install-perl_0.929-1_all.deb ... 156s Unpacking libsub-install-perl (0.929-1) ... 156s Selecting previously unselected package libdata-optlist-perl. 156s Preparing to unpack .../25-libdata-optlist-perl_0.114-1_all.deb ... 156s Unpacking libdata-optlist-perl (0.114-1) ... 156s Selecting previously unselected package libexporter-tiny-perl. 156s Preparing to unpack .../26-libexporter-tiny-perl_1.006002-1_all.deb ... 156s Unpacking libexporter-tiny-perl (1.006002-1) ... 156s Selecting previously unselected package libfile-sharedir-perl. 156s Preparing to unpack .../27-libfile-sharedir-perl_1.118-3_all.deb ... 156s Unpacking libfile-sharedir-perl (1.118-3) ... 156s Selecting previously unselected package libxs-parse-keyword-perl. 156s Preparing to unpack .../28-libxs-parse-keyword-perl_0.48-2_amd64.deb ... 156s Unpacking libxs-parse-keyword-perl (0.48-2) ... 156s Selecting previously unselected package libsyntax-keyword-try-perl. 156s Preparing to unpack .../29-libsyntax-keyword-try-perl_0.30-1_amd64.deb ... 156s Unpacking libsyntax-keyword-try-perl (0.30-1) ... 156s Selecting previously unselected package libfeature-compat-try-perl. 156s Preparing to unpack .../30-libfeature-compat-try-perl_0.05-1_all.deb ... 156s Unpacking libfeature-compat-try-perl (0.05-1) ... 156s Selecting previously unselected package libio-stringy-perl. 156s Preparing to unpack .../31-libio-stringy-perl_2.113-2_all.deb ... 156s Unpacking libio-stringy-perl (2.113-2) ... 156s Selecting previously unselected package libparams-validate-perl:amd64. 156s Preparing to unpack .../32-libparams-validate-perl_1.31-2build4_amd64.deb ... 156s Unpacking libparams-validate-perl:amd64 (1.31-2build4) ... 156s Selecting previously unselected package libsub-exporter-perl. 156s Preparing to unpack .../33-libsub-exporter-perl_0.990-1_all.deb ... 156s Unpacking libsub-exporter-perl (0.990-1) ... 156s Selecting previously unselected package libgetopt-long-descriptive-perl. 156s Preparing to unpack .../34-libgetopt-long-descriptive-perl_0.116-2_all.deb ... 156s Unpacking libgetopt-long-descriptive-perl (0.116-2) ... 156s Selecting previously unselected package libimport-into-perl. 156s Preparing to unpack .../35-libimport-into-perl_1.002005-2_all.deb ... 156s Unpacking libimport-into-perl (1.002005-2) ... 156s Selecting previously unselected package node-popper2. 156s Preparing to unpack .../36-node-popper2_2.11.2-9_all.deb ... 156s Unpacking node-popper2 (2.11.2-9) ... 156s Selecting previously unselected package libjs-bootstrap5. 156s Preparing to unpack .../37-libjs-bootstrap5_5.3.5+dfsg-4_all.deb ... 156s Unpacking libjs-bootstrap5 (5.3.5+dfsg-4) ... 156s Selecting previously unselected package libjs-highlight.js. 156s Preparing to unpack .../38-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 156s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 156s Selecting previously unselected package libjs-popper.js. 156s Preparing to unpack .../39-libjs-popper.js_1.16.1+ds-6_all.deb ... 156s Unpacking libjs-popper.js (1.16.1+ds-6) ... 156s Selecting previously unselected package libmojolicious-perl. 156s Preparing to unpack .../40-libmojolicious-perl_9.39+dfsg-1_all.deb ... 156s Unpacking libmojolicious-perl (9.39+dfsg-1) ... 156s Selecting previously unselected package librole-tiny-perl. 156s Preparing to unpack .../41-librole-tiny-perl_2.002004-1_all.deb ... 156s Unpacking librole-tiny-perl (2.002004-1) ... 156s Selecting previously unselected package libsub-quote-perl. 156s Preparing to unpack .../42-libsub-quote-perl_2.006008-1ubuntu1_all.deb ... 156s Unpacking libsub-quote-perl (2.006008-1ubuntu1) ... 156s Selecting previously unselected package libmoo-perl. 156s Preparing to unpack .../43-libmoo-perl_2.005005-1_all.deb ... 156s Unpacking libmoo-perl (2.005005-1) ... 156s Selecting previously unselected package libtype-tiny-perl. 156s Preparing to unpack .../44-libtype-tiny-perl_2.004000-2_all.deb ... 156s Unpacking libtype-tiny-perl (2.004000-2) ... 156s Selecting previously unselected package libmoox-typetiny-perl. 156s Preparing to unpack .../45-libmoox-typetiny-perl_0.002003-4_all.deb ... 156s Unpacking libmoox-typetiny-perl (0.002003-4) ... 156s Selecting previously unselected package libpath-tiny-perl. 156s Preparing to unpack .../46-libpath-tiny-perl_0.148-1_all.deb ... 156s Unpacking libpath-tiny-perl (0.148-1) ... 156s Selecting previously unselected package libref-util-perl. 156s Preparing to unpack .../47-libref-util-perl_0.204-2_all.deb ... 156s Unpacking libref-util-perl (0.204-2) ... 156s Selecting previously unselected package libsafe-isa-perl. 156s Preparing to unpack .../48-libsafe-isa-perl_1.000010-1_all.deb ... 156s Unpacking libsafe-isa-perl (1.000010-1) ... 156s Selecting previously unselected package libstrictures-perl. 156s Preparing to unpack .../49-libstrictures-perl_2.000006-1_all.deb ... 156s Unpacking libstrictures-perl (2.000006-1) ... 156s Selecting previously unselected package libjson-schema-modern-perl. 156s Preparing to unpack .../50-libjson-schema-modern-perl_0.611-1_all.deb ... 156s Unpacking libjson-schema-modern-perl (0.611-1) ... 156s Selecting previously unselected package pkg-perl-autopkgtest. 156s Preparing to unpack .../51-pkg-perl-autopkgtest_0.82_all.deb ... 156s Unpacking pkg-perl-autopkgtest (0.82) ... 156s Setting up javascript-common (12+nmu1) ... 156s Setting up libsafe-isa-perl (1.000010-1) ... 156s Setting up libclass-inspector-perl (1.36-3) ... 156s Setting up libdynaloader-functions-perl (0.004-2) ... 156s Setting up libclass-method-modifiers-perl (2.15-1) ... 156s Setting up libjs-popper.js (1.16.1+ds-6) ... 156s Setting up libsub-identify-perl (0.14-3build4) ... 156s Setting up libcpanel-json-xs-perl:amd64 (4.39-2) ... 156s Setting up libio-stringy-perl (2.113-2) ... 156s Setting up libtry-tiny-perl (0.32-1) ... 156s Setting up libsub-install-perl (0.929-1) ... 156s Setting up libautovivification-perl:amd64 (0.18-2build5) ... 156s Setting up libref-util-perl (0.204-2) ... 156s Setting up libvariable-magic-perl (0.64-1build1) ... 156s Setting up libb-hooks-op-check-perl:amd64 (0.22-3build2) ... 156s Setting up libparams-util-perl (1.102-3build1) ... 156s Setting up libsub-exporter-progressive-perl (0.001013-3) ... 156s Setting up libsub-name-perl:amd64 (0.28-1) ... 156s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 156s Setting up node-popper2 (2.11.2-9) ... 156s Setting up libpath-tiny-perl (0.148-1) ... 156s Setting up librole-tiny-perl (2.002004-1) ... 156s Setting up libfile-sharedir-perl (1.118-3) ... 156s Setting up libstrictures-perl (2.000006-1) ... 156s Setting up libsub-quote-perl (2.006008-1ubuntu1) ... 156s Setting up libclass-xsaccessor-perl (1.19-4build6) ... 156s Setting up libexporter-tiny-perl (1.006002-1) ... 156s Setting up libjs-bootstrap5 (5.3.5+dfsg-4) ... 156s Setting up dctrl-tools (2.24-3build3) ... 156s Setting up autodep8 (0.30) ... 156s Setting up libmojolicious-perl (9.39+dfsg-1) ... 156s Setting up libtype-tiny-perl (2.004000-2) ... 156s Setting up libdevel-callchecker-perl:amd64 (0.009-2) ... 156s Setting up libxs-parse-keyword-perl (0.48-2) ... 156s Setting up libdata-optlist-perl (0.114-1) ... 156s Setting up pkg-perl-autopkgtest (0.82) ... 156s Setting up libsyntax-keyword-try-perl (0.30-1) ... 156s Setting up libsub-exporter-perl (0.990-1) ... 156s Setting up libfeature-compat-try-perl (0.05-1) ... 156s Setting up libparams-classify-perl:amd64 (0.015-2build6) ... 156s Setting up libmodule-runtime-perl (0.018-1) ... 156s Setting up libmodule-implementation-perl (0.09-2) ... 156s Setting up libpackage-stash-perl (0.40-1) ... 156s Setting up libimport-into-perl (1.002005-2) ... 156s Setting up libmoo-perl (2.005005-1) ... 156s Setting up libmoox-typetiny-perl (0.002003-4) ... 156s Setting up libparams-validate-perl:amd64 (1.31-2build4) ... 156s Setting up libb-hooks-endofscope-perl (0.28-2) ... 156s Setting up libnamespace-clean-perl (0.27-2) ... 156s Setting up libbuiltin-compat-perl (0.003003-2) ... 156s Setting up libgetopt-long-descriptive-perl (0.116-2) ... 156s Setting up libjson-schema-modern-perl (0.611-1) ... 156s Processing triggers for man-db (2.13.1-1) ... 159s autopkgtest [20:32:17]: test environment configured for cross building 159s autopkgtest [20:32:17]: test autodep8-perl: /usr/share/pkg-perl-autopkgtest/runner runtime-deps 159s autopkgtest [20:32:17]: test autodep8-perl: [----------------------- 160s /usr/share/pkg-perl-autopkgtest/runtime-deps.d/use.t .. 160s 1..4 160s ok 1 - /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 exited successfully 160s ok 2 - /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 produced no (non-whitelisted) output 160s ok 3 - env PERL_DL_NONLAZY=1 /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 exited successfully 160s ok 4 - env PERL_DL_NONLAZY=1 /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 produced no (non-whitelisted) output 160s ok 160s All tests successful. 160s Files=1, Tests=4, 1 wallclock secs ( 0.01 usr 0.00 sys + 0.45 cusr 0.05 csys = 0.51 CPU) 160s Result: PASS 160s autopkgtest [20:32:18]: test autodep8-perl: -----------------------] 160s autodep8-perl PASS (superficial) 160s autopkgtest [20:32:18]: test autodep8-perl: - - - - - - - - - - results - - - - - - - - - - 161s autopkgtest [20:32:19]: test autodep8-perl-recommends: preparing testbed 161s Reading package lists... 161s Building dependency tree... 161s Reading state information... 161s Solving dependencies... 161s The following NEW packages will be installed: 161s libalgorithm-c3-perl libclass-c3-perl libclass-data-inheritable-perl 161s libclass-singleton-perl libclone-perl libdata-validate-domain-perl 161s libdatetime-format-rfc3339-perl libdatetime-locale-perl libdatetime-perl 161s libdatetime-timezone-perl libdevel-stacktrace-perl libemail-address-xs-perl 161s libeval-closure-perl libexception-class-perl libmro-compat-perl 161s libnamespace-autoclean-perl libnet-domain-tld-perl libnet-idn-encode-perl 161s libparams-validationcompiler-perl libref-util-xs-perl libsereal-decoder-perl 161s libsereal-encoder-perl libsereal-perl libspecio-perl libtime-moment-perl 161s libtype-tiny-xs-perl libxstring-perl 161s 0 upgraded, 27 newly installed, 0 to remove and 0 not upgraded. 161s Need to get 4339 kB of archives. 161s After this operation, 34.4 MB of additional disk space will be used. 161s Get:1 http://ftpmaster.internal/ubuntu resolute/universe amd64 libalgorithm-c3-perl all 0.11-2 [10.2 kB] 161s Get:2 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclass-c3-perl all 0.35-2 [18.4 kB] 161s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-data-inheritable-perl all 0.10-1 [8038 B] 161s Get:4 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclass-singleton-perl all 1.6-2 [11.5 kB] 161s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libclone-perl amd64 0.47-1 [10.7 kB] 161s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 libnet-domain-tld-perl all 1.75-4 [29.0 kB] 161s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 libdata-validate-domain-perl all 0.15-1 [10.4 kB] 161s Get:8 http://ftpmaster.internal/ubuntu resolute/universe amd64 libnamespace-autoclean-perl all 0.31-1 [11.9 kB] 161s Get:9 http://ftpmaster.internal/ubuntu resolute/universe amd64 libeval-closure-perl all 0.14-3 [10.1 kB] 161s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 libdevel-stacktrace-perl all 2.0500-1 [22.1 kB] 161s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 libexception-class-perl all 1.45-1 [28.6 kB] 161s Get:12 http://ftpmaster.internal/ubuntu resolute/universe amd64 libparams-validationcompiler-perl all 0.31-1 [28.3 kB] 161s Get:13 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmro-compat-perl all 0.15-2 [10.1 kB] 161s Get:14 http://ftpmaster.internal/ubuntu resolute/universe amd64 libxstring-perl amd64 0.005-2build4 [7940 B] 161s Get:15 http://ftpmaster.internal/ubuntu resolute/universe amd64 libspecio-perl all 0.50-1 [127 kB] 161s Get:16 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-locale-perl all 1:1.41-1 [3193 kB] 162s Get:17 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-timezone-perl all 1:2.65-1+2025b [260 kB] 162s Get:18 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-perl amd64 2:1.65-1build3 [95.8 kB] 162s Get:19 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-format-rfc3339-perl all 1.10.0-1 [8154 B] 162s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 libemail-address-xs-perl amd64 1.05-1build5 [29.5 kB] 162s Get:21 http://ftpmaster.internal/ubuntu resolute/universe amd64 libnet-idn-encode-perl amd64 2.500-5build1 [84.0 kB] 162s Get:22 http://ftpmaster.internal/ubuntu resolute/universe amd64 libref-util-xs-perl amd64 0.117-2build5 [12.8 kB] 162s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 libsereal-decoder-perl amd64 5.004+ds-1build5 [101 kB] 162s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 libsereal-encoder-perl amd64 5.004+ds-1build4 [105 kB] 162s Get:25 http://ftpmaster.internal/ubuntu resolute/universe amd64 libsereal-perl all 5.004-1 [8770 B] 162s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 libtime-moment-perl amd64 0.44-2build5 [71.6 kB] 162s Get:27 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtype-tiny-xs-perl amd64 0.025-2build1 [25.0 kB] 162s Fetched 4339 kB in 0s (8741 kB/s) 162s Selecting previously unselected package libalgorithm-c3-perl. 162s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80236 files and directories currently installed.) 162s Preparing to unpack .../00-libalgorithm-c3-perl_0.11-2_all.deb ... 162s Unpacking libalgorithm-c3-perl (0.11-2) ... 162s Selecting previously unselected package libclass-c3-perl. 162s Preparing to unpack .../01-libclass-c3-perl_0.35-2_all.deb ... 162s Unpacking libclass-c3-perl (0.35-2) ... 162s Selecting previously unselected package libclass-data-inheritable-perl. 162s Preparing to unpack .../02-libclass-data-inheritable-perl_0.10-1_all.deb ... 162s Unpacking libclass-data-inheritable-perl (0.10-1) ... 162s Selecting previously unselected package libclass-singleton-perl. 162s Preparing to unpack .../03-libclass-singleton-perl_1.6-2_all.deb ... 162s Unpacking libclass-singleton-perl (1.6-2) ... 162s Selecting previously unselected package libclone-perl:amd64. 162s Preparing to unpack .../04-libclone-perl_0.47-1_amd64.deb ... 162s Unpacking libclone-perl:amd64 (0.47-1) ... 162s Selecting previously unselected package libnet-domain-tld-perl. 162s Preparing to unpack .../05-libnet-domain-tld-perl_1.75-4_all.deb ... 162s Unpacking libnet-domain-tld-perl (1.75-4) ... 162s Selecting previously unselected package libdata-validate-domain-perl. 162s Preparing to unpack .../06-libdata-validate-domain-perl_0.15-1_all.deb ... 162s Unpacking libdata-validate-domain-perl (0.15-1) ... 162s Selecting previously unselected package libnamespace-autoclean-perl. 162s Preparing to unpack .../07-libnamespace-autoclean-perl_0.31-1_all.deb ... 162s Unpacking libnamespace-autoclean-perl (0.31-1) ... 162s Selecting previously unselected package libeval-closure-perl. 162s Preparing to unpack .../08-libeval-closure-perl_0.14-3_all.deb ... 162s Unpacking libeval-closure-perl (0.14-3) ... 162s Selecting previously unselected package libdevel-stacktrace-perl. 162s Preparing to unpack .../09-libdevel-stacktrace-perl_2.0500-1_all.deb ... 162s Unpacking libdevel-stacktrace-perl (2.0500-1) ... 162s Selecting previously unselected package libexception-class-perl. 162s Preparing to unpack .../10-libexception-class-perl_1.45-1_all.deb ... 162s Unpacking libexception-class-perl (1.45-1) ... 162s Selecting previously unselected package libparams-validationcompiler-perl. 162s Preparing to unpack .../11-libparams-validationcompiler-perl_0.31-1_all.deb ... 162s Unpacking libparams-validationcompiler-perl (0.31-1) ... 162s Selecting previously unselected package libmro-compat-perl. 162s Preparing to unpack .../12-libmro-compat-perl_0.15-2_all.deb ... 162s Unpacking libmro-compat-perl (0.15-2) ... 162s Selecting previously unselected package libxstring-perl:amd64. 162s Preparing to unpack .../13-libxstring-perl_0.005-2build4_amd64.deb ... 162s Unpacking libxstring-perl:amd64 (0.005-2build4) ... 162s Selecting previously unselected package libspecio-perl. 162s Preparing to unpack .../14-libspecio-perl_0.50-1_all.deb ... 162s Unpacking libspecio-perl (0.50-1) ... 162s Selecting previously unselected package libdatetime-locale-perl. 162s Preparing to unpack .../15-libdatetime-locale-perl_1%3a1.41-1_all.deb ... 162s Unpacking libdatetime-locale-perl (1:1.41-1) ... 162s Selecting previously unselected package libdatetime-timezone-perl. 162s Preparing to unpack .../16-libdatetime-timezone-perl_1%3a2.65-1+2025b_all.deb ... 162s Unpacking libdatetime-timezone-perl (1:2.65-1+2025b) ... 162s Selecting previously unselected package libdatetime-perl. 162s Preparing to unpack .../17-libdatetime-perl_2%3a1.65-1build3_amd64.deb ... 162s Unpacking libdatetime-perl (2:1.65-1build3) ... 162s Selecting previously unselected package libdatetime-format-rfc3339-perl. 162s Preparing to unpack .../18-libdatetime-format-rfc3339-perl_1.10.0-1_all.deb ... 162s Unpacking libdatetime-format-rfc3339-perl (1.10.0-1) ... 162s Selecting previously unselected package libemail-address-xs-perl. 162s Preparing to unpack .../19-libemail-address-xs-perl_1.05-1build5_amd64.deb ... 162s Unpacking libemail-address-xs-perl (1.05-1build5) ... 162s Selecting previously unselected package libnet-idn-encode-perl. 162s Preparing to unpack .../20-libnet-idn-encode-perl_2.500-5build1_amd64.deb ... 162s Unpacking libnet-idn-encode-perl (2.500-5build1) ... 162s Selecting previously unselected package libref-util-xs-perl. 162s Preparing to unpack .../21-libref-util-xs-perl_0.117-2build5_amd64.deb ... 162s Unpacking libref-util-xs-perl (0.117-2build5) ... 162s Selecting previously unselected package libsereal-decoder-perl. 162s Preparing to unpack .../22-libsereal-decoder-perl_5.004+ds-1build5_amd64.deb ... 162s Unpacking libsereal-decoder-perl (5.004+ds-1build5) ... 162s Selecting previously unselected package libsereal-encoder-perl. 162s Preparing to unpack .../23-libsereal-encoder-perl_5.004+ds-1build4_amd64.deb ... 162s Unpacking libsereal-encoder-perl (5.004+ds-1build4) ... 162s Selecting previously unselected package libsereal-perl. 163s Preparing to unpack .../24-libsereal-perl_5.004-1_all.deb ... 163s Unpacking libsereal-perl (5.004-1) ... 163s Selecting previously unselected package libtime-moment-perl. 163s Preparing to unpack .../25-libtime-moment-perl_0.44-2build5_amd64.deb ... 163s Unpacking libtime-moment-perl (0.44-2build5) ... 163s Selecting previously unselected package libtype-tiny-xs-perl:amd64. 163s Preparing to unpack .../26-libtype-tiny-xs-perl_0.025-2build1_amd64.deb ... 163s Unpacking libtype-tiny-xs-perl:amd64 (0.025-2build1) ... 163s Setting up libref-util-xs-perl (0.117-2build5) ... 163s Setting up libnet-idn-encode-perl (2.500-5build1) ... 163s Setting up libclone-perl:amd64 (0.47-1) ... 163s Setting up libclass-singleton-perl (1.6-2) ... 163s Setting up libtime-moment-perl (0.44-2build5) ... 163s Setting up libxstring-perl:amd64 (0.005-2build4) ... 163s Setting up libsereal-encoder-perl (5.004+ds-1build4) ... 163s Setting up libclass-data-inheritable-perl (0.10-1) ... 163s Setting up libalgorithm-c3-perl (0.11-2) ... 163s Setting up libnet-domain-tld-perl (1.75-4) ... 163s Setting up libtype-tiny-xs-perl:amd64 (0.025-2build1) ... 163s Setting up libdata-validate-domain-perl (0.15-1) ... 163s Setting up libdevel-stacktrace-perl (2.0500-1) ... 163s Setting up libnamespace-autoclean-perl (0.31-1) ... 163s Setting up libsereal-decoder-perl (5.004+ds-1build5) ... 163s Setting up libeval-closure-perl (0.14-3) ... 163s Setting up libemail-address-xs-perl (1.05-1build5) ... 163s Setting up libsereal-perl (5.004-1) ... 163s Setting up libexception-class-perl (1.45-1) ... 163s Setting up libclass-c3-perl (0.35-2) ... 163s Setting up libmro-compat-perl (0.15-2) ... 163s Setting up libparams-validationcompiler-perl (0.31-1) ... 163s Setting up libspecio-perl (0.50-1) ... 163s Setting up libdatetime-locale-perl (1:1.41-1) ... 163s Setting up libdatetime-timezone-perl (1:2.65-1+2025b) ... 163s Setting up libdatetime-perl (2:1.65-1build3) ... 163s Setting up libdatetime-format-rfc3339-perl (1.10.0-1) ... 163s Processing triggers for man-db (2.13.1-1) ... 164s autopkgtest [20:32:22]: test environment configured for cross building 164s autopkgtest [20:32:22]: test autodep8-perl-recommends: /usr/share/pkg-perl-autopkgtest/runner runtime-deps-and-recommends 164s autopkgtest [20:32:22]: test autodep8-perl-recommends: [----------------------- 165s /usr/share/pkg-perl-autopkgtest/runtime-deps-and-recommends.d/syntax.t .. 165s 1..4 165s ok 1 - Package libjson-schema-modern-perl is known to dpkg 165s ok 2 - Got status information for package libjson-schema-modern-perl 165s ok 3 - Got file list for package libjson-schema-modern-perl 165s # Subtest: all modules in libjson-schema-modern-perl pass the syntax check 165s 1..16 165s ok 1 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Annotation.pm exited successfully 165s ok 2 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Document.pm exited successfully 165s ok 3 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Error.pm exited successfully 165s ok 4 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Result.pm exited successfully 165s ok 5 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/ResultNode.pm exited successfully 165s ok 6 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Utilities.pm exited successfully 165s ok 7 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Applicator.pm exited successfully 165s ok 8 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Content.pm exited successfully 165s ok 9 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Core.pm exited successfully 165s ok 10 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/FormatAnnotation.pm exited successfully 165s ok 11 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/FormatAssertion.pm exited successfully 165s ok 12 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/MetaData.pm exited successfully 165s ok 13 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Unevaluated.pm exited successfully 165s ok 14 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Validation.pm exited successfully 165s ok 15 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary.pm exited successfully 165s ok 16 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern.pm exited successfully 165s ok 4 - all modules in libjson-schema-modern-perl pass the syntax check 165s ok 165s All tests successful. 165s Files=1, Tests=4, 1 wallclock secs ( 0.01 usr 0.00 sys + 1.06 cusr 0.12 csys = 1.19 CPU) 165s Result: PASS 166s autopkgtest [20:32:24]: test autodep8-perl-recommends: -----------------------] 166s autopkgtest [20:32:24]: test autodep8-perl-recommends: - - - - - - - - - - results - - - - - - - - - - 166s autodep8-perl-recommends PASS (superficial) 167s autopkgtest [20:32:25]: @@@@@@@@@@@@@@@@@@@@ summary 167s autodep8-perl-build-deps PASS 167s autodep8-perl PASS (superficial) 167s autodep8-perl-recommends PASS (superficial)